APP下载

基于视频动态纹理与粒子系统的雨景模拟

2011-12-09李莉

关键词:粒子系统雨幕雨景

李莉

(1.燕山大学河北省工业计算机控制工程重点实验室,河北秦皇岛 066004)

基于视频动态纹理与粒子系统的雨景模拟

李莉

(1.燕山大学河北省工业计算机控制工程重点实验室,河北秦皇岛 066004)

用计算机来模拟雨景是影视制作中经常面临的一个课题.目前主要采用的粒子系统方法一般都需要大量的粒子和复杂的物理模型,而基于视频处理的降雨绘制算法虽然能用于图像和视频处理,还无法支持三维场景的绘制.本文提出了基于视频动态纹理与粒子系统相结合的思想,结合了粒子系统随机性、高效性,视频纹理方法简单,计算量小的特点,基于VC++和OpenGL平台对算法进行了模拟,通过实验在满足真实感的同时兼顾实时性.

视频纹理;粒子系统;雨景模拟

自然景观的模拟在计算机图形学研究领域多年来备受关注,研究人员为此做了大量工作,尤其是日常生活中较为常见的降雨现象,广泛模拟存在于游戏、可视化仿真等领域,增强虚拟场景的真实性.

虽然人们很早开始对自然天气效果进行研究,但是模拟出真实完整的雨场景并非易事.Starik[1]提出了一种用于视频处理的降雨绘制算法,由于这种方法仅局限于视频及图像处理,无法支持三维场景的绘制.Wang和Wade对于此问题的处理方法是:用2个底面相交的圆锥体构成一个放置视点的封闭空间,在此空间外表面上贴上具有多根雨线的动态纹理.该方法可以拉伸贴上的动态纹理来模拟运动模糊效果,与之前的基于图像的绘制算法相比,这种算法能够相对比较自由的调节雨滴下降的方向和速度,其缺点是对于纺锤体形状的封闭空间和对表面纹理的绘制要求非常高,并且如果纹理确定下来,形成封闭空间的纺锤体的形状也不容易再进行改变,最终无法调节降雨的范围.

较之于基于图像的绘制方法,粒子系统可以很好地控制各项参数,使得画面错落有致,但是当需要处理大量数量的模拟对象时,单一使用粒子系统的方法,在系统的实时性方面还存在着不足.本文结合动态纹理技术,采用时间序列分析方法,将视频中已有的雨滴纹理作为画面的背景,在近景处产生雨滴,远景处使用纹理,结合mipmap技术、纹理映射技术以及对粒子的分布区、发射器、运动模型等方面优化,最大限度地降低系统的数量,兼顾真实感与实时性,形成形象仿真下雨的特殊效果.

提出了基于视频动态纹理与粒子系统相结合的方法,从真实的雨景中分离出精确的雨幕,以此作为动态背景,再在系统的分布区域生成少量的粒子.为了增加场景真实感的同时兼顾实时性,对粒子的产生区域及粒子生命周期的控制进行了分析.

1 视频纹理原理

对给定的一段有限视频纹理,视频中存在的2帧图像,可认为是相似的,从第i帧到第j帧的切换不会引起视觉跳跃,可以向前或向后,根据程序设定的参数变量,随意切换,进而合成无限长度的视频.

1.1 建立降雨模型

将具有视锥效果的分布区域离散化,构成一个个离散的雨幕,循环调用离散的雨幕,实现视频动态纹理.在距离视点一定范围采用粒子系统,空间上降低粒子的数量和密度.为了比较方便地调用雨幕,将具有视锥效果的分布域简化为长方体,这样可以使得当大颗粒的雨滴离视点比较近的时候,图形渲染能够显得相对真实.在粒子的绘制过程中规定最小距离dmin[4],使得所有的雨滴离视点的距离都小于dmin,加强渲染的真实感.

1.2 视频雨景

1.2.1 视频纹理的提取

视频雨景的提取算法分为3个步骤:先用最小值滤波方法求出背景图,然后通过原始图像与背景的差求得粗略的雨景,最后用改进的matting方法分离出较精确的雨幕[5].对分离出的雨幕进行筛选,选取画面相差不大,包含的视频信息相似的雨幕.将提取的视频雨幕做成纹理,组成一个雨幕纹理数据库,对相邻2帧纹理切换时间适度选择,利用人眼的视觉停滞特性形成真实效果,循环调用处于同一纹理坐标的雨幕,避免单幅画面单调的不真实感.图1为提取后的纹理图片.

图1 提取后的纹理图片Fig.1 Texture pictures of extracted

1.2.2 纹理的动态实现

首先建立一个函数库实现*.BM P格式图片的导入,然后建立临时位图bmp Temp,用导入的图像数据填充位图,并将此位图的数据由BGR转换成RGB格式的像素.最后,将新位图数据绑定到texid,设置滤波方式并生成纹理,再在系统初始化函数中调用函数Move Texture()载入多张纹理图片,利用视频纹理帧切换控制不同的纹理图片,在屏幕刷新时显示不同的纹理图片,从而实现动态雨景[6],如图2所示.

图2 动态纹理实现Fig.2 Implementation of dynam ic texture

2 粒子系统

2.1 粒子的产生区域

粒子数量的多少是影响粒子系统算法实时性的重要因素,如何高效率地使用有限的粒子来渲染画面是该算法研究的出发点.在不显著影响系统的实时性的前提下,简化计算,将粒子的分布区域简化为一个长方体的上表面,粒子分布图如图3.

图3 粒子分布区域Fig.3 Particle distribution picture

规定初始位置为x=[0,100];y=100;z=[0,100].

2.2 粒子的运动

如果不考虑雨滴下落过程中空气气流的影响,根据经典的牛顿第二运动定律,雨滴受到其自身的重力和空气的阻力的作用.相对雨滴重力来讲,空气阻力较小可以忽略不计,因此对于雨滴的受力情况只考虑重力影响.粒子在tk时刻的位置Sk可以由tk-1时刻的位置Sk-1求得

为了提高实现效率避免对上一时刻粒子的位置保存,根据粒子的初始位置和当前时刻的瞬时速度来近似更新粒子的位置情况

2.3 粒子的生命周期控制

当一个粒子经过一段时间的运动之后,运动轨迹将脱离当前的视椎体,此时该粒子将变得不可见.在传统的处理方法中,会认为该粒子消亡并删除其在粒子系统中的位置.本文处理的方法是当该粒子脱离视椎体之后重新更新其位置属性,赋予该粒子一个新的生命周期.

图4 粒子重复利用Fig.4 Reuse of particle

假定粒子的运动在垂直方向遵循匀速运动,由该粒子的初始位置计算得到下面的2个时间:

1)在当前粒子的深度之下,如图4所示.粒子从top位置降落到bottom位置所用的时间定义为td,其中Stop为粒子的初始位置,Sbottom为粒子的最终降落位置

2)定义ti为粒子从Stop下落到初始位置Sinit所花的时间

此方法解决了使用帧数作为时间单位所带来的粒子生命周期依赖绘制背景复杂度的确定,最大限度地利用固定数量粒子的同时,降低了系统开销,场景的复杂程度因实际情况需要而改变,兼顾真实感与实时性要求综合考虑.

在很多三维游戏制作中,雨滴是采用点和线来简单绘制的,虽然保证了系统的流畅,但是使得最终的效果不是很真实.为了使得渲染出来的雨滴明暗交错,真实感较强,笔者选择了采用贴有纹理的视椎体的技术,并随机为每个粒子赋予随机的纹理坐标.

求出矩形面片的4个顶点坐标后,设置当前纹理坐标然后调用,即可将雨滴纹理映射到矩形面片上,融合后即是雨滴.同时文中采用纹理映射技术绘制雨天环境中的天空体,增加场景渲染的真实感.

利用td和ti得到粒子位置更新的重复利用方程

3 实验结果

在一台配有P4 3.06 GHz CPU和NV IDIA 7 300 GT GPU的PC机上,在VC++6.0环境下,以OpenGL图形开发包作为绘制工具实现了场景模拟.实验中采用本文算法的粒子系统数量总数达到4 500左右时,视觉品质理想,且渲染帧率达到65帧左右,兼顾实时性与真实性要求.如图5,6所示.

图5 未加视频纹理Fig.5 Video texture exception

图6 视频纹理雨景模拟Fig.6 Rain scene simulation based on video texture

4 结论

本文将视频动态纹理技术与粒子系统相结合,将其应用于实时视景仿真系统.为增强视景仿真的真实性,从真实的雨景中分离出精确的雨幕,以此作为动态背景.在绘制粒子时,采用了纹理映射技术、m ipmap技术对雨粒子的绘制效率进行了优化.实验仿真表明,本方法设计简单,计算量小,在视景仿真的逼真度和实时性方面取得了比较好的效果.

[1]STARIK S,WERMAN M.Simulation of rain in video[C].Proceedings of the 3rdInt'l Wo rkshop on Texture Analysis and Synthesis,2002:95-100.

[2]周凯波,张建伟,梁海军.基于粒子系统和纹理滚动的实时雨雪模拟[J].微计算机信息,2009,25(12):177-179

[3]SCHODL A,SZEL ISKIR,SALESIN D H,et al.Video textures[M]//Proceedingsof ACM SIGGRAP 2000,New Orleans,Louisiana,2000:489-498.

[4]伍艳莲,赵青松,刘金定.基于粒子系统的降雪过程模拟[J].西华大学学报,2008,27(1):91-96.

[5]董卓群,马利庄.真实感视频雨景编辑[J].计算机工程与应用,2009,45(15):173-176.

[6]李骋,钱文华,徐丹.基于视频纹理的自然场景建模方法[J].计算机工程与应用,2010,46(12):157-160.

[7]REEVESW T.Particle system s-A technique for modeling a class of fuzzy objects[J].ACM Transactions on Graphics,1983,2(2):91-108.

Rain Scene Simulation Based on Video Dynam ic Texture and Particle System

LILi
(1.Key Labo rato ry of Hebei Industrial Computer Contro l Engineering,Yanshan University,Qinghuangdao 066004,China)

Rain scene sim ulation using computer is a usual p roblem in film making.Particle system is one of themethodsw hich used most.It needsmany particles and comp licated physicalmodels.Rain simulation method based on video p rocessing can be used to p rocess pictures and videos w hile it does not suppo rt simulation of 3D scene.The paper involves a new method that com bines video dynam ic texture to particle system.It has both the charactersof random and efficient in particle system and simp le and low calculation in video texture.Simulated on the p latform of VC++and OpenGL,the result p roves that it satisfies the requirement of realistic and real-time characteristics.

video dynamic texture;particle system;rain scene simulation

TP 391.9

A

1000-1565(2011)04-0434-05

2011-03-01

科技部国际科技合作项目(2008DR10530);河北省科技厅科技支撑计划(08243531D)

李莉(1983-),女,河北保定人,燕山大学硕士研究生.

E-mail:lilivicto ry11@hotmail.com

孟素兰)

猜你喜欢

粒子系统雨幕雨景
动车穿过雨幕(组诗)
动车穿过雨幕(组诗)
听雨
叶敏作品赏析
利用GPU加速的粒子系统全球流场可视化系统设计与实现
橱窗雨幕
雨景
大雨之夜
UE 4粒子系统与外部数据通信研究
写微诗的时候,想起雨景截句