李莉
(1.燕山大學(xué)河北省工業(yè)計(jì)算機(jī)控制工程重點(diǎn)實(shí)驗(yàn)室,河北秦皇島 066004)
基于視頻動(dòng)態(tài)紋理與粒子系統(tǒng)的雨景模擬
李莉
(1.燕山大學(xué)河北省工業(yè)計(jì)算機(jī)控制工程重點(diǎn)實(shí)驗(yàn)室,河北秦皇島 066004)
用計(jì)算機(jī)來(lái)模擬雨景是影視制作中經(jīng)常面臨的一個(gè)課題.目前主要采用的粒子系統(tǒng)方法一般都需要大量的粒子和復(fù)雜的物理模型,而基于視頻處理的降雨繪制算法雖然能用于圖像和視頻處理,還無(wú)法支持三維場(chǎng)景的繪制.本文提出了基于視頻動(dòng)態(tài)紋理與粒子系統(tǒng)相結(jié)合的思想,結(jié)合了粒子系統(tǒng)隨機(jī)性、高效性,視頻紋理方法簡(jiǎn)單,計(jì)算量小的特點(diǎn),基于VC++和OpenGL平臺(tái)對(duì)算法進(jìn)行了模擬,通過(guò)實(shí)驗(yàn)在滿(mǎn)足真實(shí)感的同時(shí)兼顧實(shí)時(shí)性.
視頻紋理;粒子系統(tǒng);雨景模擬
自然景觀的模擬在計(jì)算機(jī)圖形學(xué)研究領(lǐng)域多年來(lái)備受關(guān)注,研究人員為此做了大量工作,尤其是日常生活中較為常見(jiàn)的降雨現(xiàn)象,廣泛模擬存在于游戲、可視化仿真等領(lǐng)域,增強(qiáng)虛擬場(chǎng)景的真實(shí)性.
雖然人們很早開(kāi)始對(duì)自然天氣效果進(jìn)行研究,但是模擬出真實(shí)完整的雨場(chǎng)景并非易事.Starik[1]提出了一種用于視頻處理的降雨繪制算法,由于這種方法僅局限于視頻及圖像處理,無(wú)法支持三維場(chǎng)景的繪制.Wang和Wade對(duì)于此問(wèn)題的處理方法是:用2個(gè)底面相交的圓錐體構(gòu)成一個(gè)放置視點(diǎn)的封閉空間,在此空間外表面上貼上具有多根雨線的動(dòng)態(tài)紋理.該方法可以拉伸貼上的動(dòng)態(tài)紋理來(lái)模擬運(yùn)動(dòng)模糊效果,與之前的基于圖像的繪制算法相比,這種算法能夠相對(duì)比較自由的調(diào)節(jié)雨滴下降的方向和速度,其缺點(diǎn)是對(duì)于紡錘體形狀的封閉空間和對(duì)表面紋理的繪制要求非常高,并且如果紋理確定下來(lái),形成封閉空間的紡錘體的形狀也不容易再進(jìn)行改變,最終無(wú)法調(diào)節(jié)降雨的范圍.
較之于基于圖像的繪制方法,粒子系統(tǒng)可以很好地控制各項(xiàng)參數(shù),使得畫(huà)面錯(cuò)落有致,但是當(dāng)需要處理大量數(shù)量的模擬對(duì)象時(shí),單一使用粒子系統(tǒng)的方法,在系統(tǒng)的實(shí)時(shí)性方面還存在著不足.本文結(jié)合動(dòng)態(tài)紋理技術(shù),采用時(shí)間序列分析方法,將視頻中已有的雨滴紋理作為畫(huà)面的背景,在近景處產(chǎn)生雨滴,遠(yuǎn)景處使用紋理,結(jié)合mipmap技術(shù)、紋理映射技術(shù)以及對(duì)粒子的分布區(qū)、發(fā)射器、運(yùn)動(dòng)模型等方面優(yōu)化,最大限度地降低系統(tǒng)的數(shù)量,兼顧真實(shí)感與實(shí)時(shí)性,形成形象仿真下雨的特殊效果.
提出了基于視頻動(dòng)態(tài)紋理與粒子系統(tǒng)相結(jié)合的方法,從真實(shí)的雨景中分離出精確的雨幕,以此作為動(dòng)態(tài)背景,再在系統(tǒng)的分布區(qū)域生成少量的粒子.為了增加場(chǎng)景真實(shí)感的同時(shí)兼顧實(shí)時(shí)性,對(duì)粒子的產(chǎn)生區(qū)域及粒子生命周期的控制進(jìn)行了分析.
對(duì)給定的一段有限視頻紋理,視頻中存在的2幀圖像,可認(rèn)為是相似的,從第i幀到第j幀的切換不會(huì)引起視覺(jué)跳躍,可以向前或向后,根據(jù)程序設(shè)定的參數(shù)變量,隨意切換,進(jìn)而合成無(wú)限長(zhǎng)度的視頻.
1.1 建立降雨模型
將具有視錐效果的分布區(qū)域離散化,構(gòu)成一個(gè)個(gè)離散的雨幕,循環(huán)調(diào)用離散的雨幕,實(shí)現(xiàn)視頻動(dòng)態(tài)紋理.在距離視點(diǎn)一定范圍采用粒子系統(tǒng),空間上降低粒子的數(shù)量和密度.為了比較方便地調(diào)用雨幕,將具有視錐效果的分布域簡(jiǎn)化為長(zhǎng)方體,這樣可以使得當(dāng)大顆粒的雨滴離視點(diǎn)比較近的時(shí)候,圖形渲染能夠顯得相對(duì)真實(shí).在粒子的繪制過(guò)程中規(guī)定最小距離dmin[4],使得所有的雨滴離視點(diǎn)的距離都小于dmin,加強(qiáng)渲染的真實(shí)感.
1.2 視頻雨景
1.2.1 視頻紋理的提取
視頻雨景的提取算法分為3個(gè)步驟:先用最小值濾波方法求出背景圖,然后通過(guò)原始圖像與背景的差求得粗略的雨景,最后用改進(jìn)的matting方法分離出較精確的雨幕[5].對(duì)分離出的雨幕進(jìn)行篩選,選取畫(huà)面相差不大,包含的視頻信息相似的雨幕.將提取的視頻雨幕做成紋理,組成一個(gè)雨幕紋理數(shù)據(jù)庫(kù),對(duì)相鄰2幀紋理切換時(shí)間適度選擇,利用人眼的視覺(jué)停滯特性形成真實(shí)效果,循環(huán)調(diào)用處于同一紋理坐標(biāo)的雨幕,避免單幅畫(huà)面單調(diào)的不真實(shí)感.圖1為提取后的紋理圖片.
圖1 提取后的紋理圖片F(xiàn)ig.1 Texture pictures of extracted
1.2.2 紋理的動(dòng)態(tài)實(shí)現(xiàn)
首先建立一個(gè)函數(shù)庫(kù)實(shí)現(xiàn)*.BM P格式圖片的導(dǎo)入,然后建立臨時(shí)位圖bmp Temp,用導(dǎo)入的圖像數(shù)據(jù)填充位圖,并將此位圖的數(shù)據(jù)由BGR轉(zhuǎn)換成RGB格式的像素.最后,將新位圖數(shù)據(jù)綁定到texid,設(shè)置濾波方式并生成紋理,再在系統(tǒng)初始化函數(shù)中調(diào)用函數(shù)Move Texture()載入多張紋理圖片,利用視頻紋理幀切換控制不同的紋理圖片,在屏幕刷新時(shí)顯示不同的紋理圖片,從而實(shí)現(xiàn)動(dòng)態(tài)雨景[6],如圖2所示.
圖2 動(dòng)態(tài)紋理實(shí)現(xiàn)Fig.2 Implementation of dynam ic texture
2.1 粒子的產(chǎn)生區(qū)域
粒子數(shù)量的多少是影響粒子系統(tǒng)算法實(shí)時(shí)性的重要因素,如何高效率地使用有限的粒子來(lái)渲染畫(huà)面是該算法研究的出發(fā)點(diǎn).在不顯著影響系統(tǒng)的實(shí)時(shí)性的前提下,簡(jiǎn)化計(jì)算,將粒子的分布區(qū)域簡(jiǎn)化為一個(gè)長(zhǎng)方體的上表面,粒子分布圖如圖3.
圖3 粒子分布區(qū)域Fig.3 Particle distribution picture
規(guī)定初始位置為x=[0,100];y=100;z=[0,100].
2.2 粒子的運(yùn)動(dòng)
如果不考慮雨滴下落過(guò)程中空氣氣流的影響,根據(jù)經(jīng)典的牛頓第二運(yùn)動(dòng)定律,雨滴受到其自身的重力和空氣的阻力的作用.相對(duì)雨滴重力來(lái)講,空氣阻力較小可以忽略不計(jì),因此對(duì)于雨滴的受力情況只考慮重力影響.粒子在tk時(shí)刻的位置Sk可以由tk-1時(shí)刻的位置Sk-1求得
為了提高實(shí)現(xiàn)效率避免對(duì)上一時(shí)刻粒子的位置保存,根據(jù)粒子的初始位置和當(dāng)前時(shí)刻的瞬時(shí)速度來(lái)近似更新粒子的位置情況
2.3 粒子的生命周期控制
當(dāng)一個(gè)粒子經(jīng)過(guò)一段時(shí)間的運(yùn)動(dòng)之后,運(yùn)動(dòng)軌跡將脫離當(dāng)前的視椎體,此時(shí)該粒子將變得不可見(jiàn).在傳統(tǒng)的處理方法中,會(huì)認(rèn)為該粒子消亡并刪除其在粒子系統(tǒng)中的位置.本文處理的方法是當(dāng)該粒子脫離視椎體之后重新更新其位置屬性,賦予該粒子一個(gè)新的生命周期.
圖4 粒子重復(fù)利用Fig.4 Reuse of particle
假定粒子的運(yùn)動(dòng)在垂直方向遵循勻速運(yùn)動(dòng),由該粒子的初始位置計(jì)算得到下面的2個(gè)時(shí)間:
1)在當(dāng)前粒子的深度之下,如圖4所示.粒子從top位置降落到bottom位置所用的時(shí)間定義為td,其中Stop為粒子的初始位置,Sbottom為粒子的最終降落位置
2)定義ti為粒子從Stop下落到初始位置Sinit所花的時(shí)間
此方法解決了使用幀數(shù)作為時(shí)間單位所帶來(lái)的粒子生命周期依賴(lài)?yán)L制背景復(fù)雜度的確定,最大限度地利用固定數(shù)量粒子的同時(shí),降低了系統(tǒng)開(kāi)銷(xiāo),場(chǎng)景的復(fù)雜程度因?qū)嶋H情況需要而改變,兼顧真實(shí)感與實(shí)時(shí)性要求綜合考慮.
在很多三維游戲制作中,雨滴是采用點(diǎn)和線來(lái)簡(jiǎn)單繪制的,雖然保證了系統(tǒng)的流暢,但是使得最終的效果不是很真實(shí).為了使得渲染出來(lái)的雨滴明暗交錯(cuò),真實(shí)感較強(qiáng),筆者選擇了采用貼有紋理的視椎體的技術(shù),并隨機(jī)為每個(gè)粒子賦予隨機(jī)的紋理坐標(biāo).
求出矩形面片的4個(gè)頂點(diǎn)坐標(biāo)后,設(shè)置當(dāng)前紋理坐標(biāo)然后調(diào)用,即可將雨滴紋理映射到矩形面片上,融合后即是雨滴.同時(shí)文中采用紋理映射技術(shù)繪制雨天環(huán)境中的天空體,增加場(chǎng)景渲染的真實(shí)感.
利用td和ti得到粒子位置更新的重復(fù)利用方程
在一臺(tái)配有P4 3.06 GHz CPU和NV IDIA 7 300 GT GPU的PC機(jī)上,在VC++6.0環(huán)境下,以O(shè)penGL圖形開(kāi)發(fā)包作為繪制工具實(shí)現(xiàn)了場(chǎng)景模擬.實(shí)驗(yàn)中采用本文算法的粒子系統(tǒng)數(shù)量總數(shù)達(dá)到4 500左右時(shí),視覺(jué)品質(zhì)理想,且渲染幀率達(dá)到65幀左右,兼顧實(shí)時(shí)性與真實(shí)性要求.如圖5,6所示.
圖5 未加視頻紋理Fig.5 Video texture exception
圖6 視頻紋理雨景模擬Fig.6 Rain scene simulation based on video texture
本文將視頻動(dòng)態(tài)紋理技術(shù)與粒子系統(tǒng)相結(jié)合,將其應(yīng)用于實(shí)時(shí)視景仿真系統(tǒng).為增強(qiáng)視景仿真的真實(shí)性,從真實(shí)的雨景中分離出精確的雨幕,以此作為動(dòng)態(tài)背景.在繪制粒子時(shí),采用了紋理映射技術(shù)、m ipmap技術(shù)對(duì)雨粒子的繪制效率進(jìn)行了優(yōu)化.實(shí)驗(yàn)仿真表明,本方法設(shè)計(jì)簡(jiǎn)單,計(jì)算量小,在視景仿真的逼真度和實(shí)時(shí)性方面取得了比較好的效果.
[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]周凱波,張建偉,梁海軍.基于粒子系統(tǒng)和紋理滾動(dòng)的實(shí)時(shí)雨雪模擬[J].微計(jì)算機(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]伍艷蓮,趙青松,劉金定.基于粒子系統(tǒng)的降雪過(guò)程模擬[J].西華大學(xué)學(xué)報(bào),2008,27(1):91-96.
[5]董卓群,馬利莊.真實(shí)感視頻雨景編輯[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(15):173-176.
[6]李騁,錢(qián)文華,徐丹.基于視頻紋理的自然場(chǎng)景建模方法[J].計(jì)算機(jī)工程與應(yīng)用,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
科技部國(guó)際科技合作項(xiàng)目(2008DR10530);河北省科技廳科技支撐計(jì)劃(08243531D)
李莉(1983-),女,河北保定人,燕山大學(xué)碩士研究生.
E-mail:lilivicto ry11@hotmail.com
孟素蘭)