国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

常見三維場景中水面特效的模擬*

2014-01-24 06:55莊甘霖陳秀宏
計算機(jī)工程與科學(xué) 2014年4期
關(guān)鍵詞:擺線水波振幅

莊甘霖,陳秀宏

(江南大學(xué)數(shù)字媒體學(xué)院,江蘇 無錫 214122)

常見三維場景中水面特效的模擬*

莊甘霖,陳秀宏

(江南大學(xué)數(shù)字媒體學(xué)院,江蘇 無錫 214122)

針對常見三維場景中水面特效真實感與實時性較難平衡的現(xiàn)狀,提出了一種基于Gerstner波模型的水面特效模擬方法。對振幅添加了隨機(jī)擾動,使得波動更具有變化;在將疊加后Gerstner波分為大波與小波的基礎(chǔ)上,通過改變不同類型波的參數(shù)可方便地控制波形;最后引入反射率與透明度以適應(yīng)不同的環(huán)境與水體。實驗結(jié)果表明,新的模型不僅呈現(xiàn)出更加真實的水面特效,而且得到了比較理想的渲染速度。

水面特效;水波模擬;Gerstner波;隨機(jī)擾動;波形控制;反射率;透明度

1 引言

水面是現(xiàn)實世界里最常見的一種自然景觀,真實水面的模擬對于增加虛擬自然環(huán)境的沉浸感起到非常重要的作用。水面模擬在游戲、動漫、影視以及虛擬現(xiàn)實等各領(lǐng)域中都有著廣泛的用途。從科學(xué)的角度來看,自然景物的真實感的建模與渲染的實時性是其難點(diǎn)所在。由于水的形狀是動態(tài)的、不固定的,因此不能用靜態(tài)的幾何多邊形來表示;并且水面的光影效果取決于各種光線的反射和折射,它們的比例會根據(jù)視點(diǎn)位置的不同而不同,因此找到一種合適的模型來模擬真實效果并不容易。由于人們對視覺體驗的要求不斷提高,高負(fù)荷的計算帶來的時間與資源的消耗又對實時性提出了嚴(yán)峻的考驗。近年來,基于波形分析的水面特效模擬在真實性與實時性上找到了一個不錯的平衡點(diǎn),得到了廣泛的研究與應(yīng)用。

Max N L[1]在1981年提出把整個水面作為高度場,通過正弦函數(shù)來模擬水面。Peachey D R[2]在此基礎(chǔ)上,使用平面波方程,通過改變參數(shù)得到了不同的水面效果。1986年,F(xiàn)ournier A和Reeves W T[3]在波形函數(shù)中首次采用了Gerstner波函數(shù),克服了把波形作為高度場時不能很好地表現(xiàn)激烈水面環(huán)境的不足,使得算法的適用環(huán)境更加廣泛。2001年,Tessendorf J[4]又對 Gerstner波中的參數(shù)和疊加規(guī)律進(jìn)行了深入的研究。童若鋒[5]的研究小組借鑒了Peachey D R的算法,將水網(wǎng)格作更進(jìn)一步的細(xì)分,通過對水面網(wǎng)格的擾動操作來產(chǎn)生逼真的水面微觀效果,并且很好地解決了水面模擬不夠光滑的問題。劉潔等[6]在進(jìn)行基于Gerstner波浪模擬時,研究了風(fēng)力對于波形的影響,實現(xiàn)了海浪隨風(fēng)速的變化而變化。王海玲等[7]在2011年利用改進(jìn)的曲面熵算法對水面進(jìn)行動態(tài)分區(qū),對不同區(qū)域施加不同程度的水面擾動,通過修正紋理映射位移的方法提高水面質(zhì)感。

本文提出了一種基于Gerstner波模型的水面特效模擬方法。首先,針對Gerstner波在固定振幅下波動不夠真實的情況,對振幅添加了隨機(jī)擾動,使得波動更具有變化;然后,采用三至五個Gerstner波進(jìn)行疊加,尋求不同環(huán)境下合適的疊加方式,并將疊加的Gerstner波分為大波與小波兩類,通過改變不同類型波的參數(shù)可更加方便地控制波形;最后,引入反射率與透明度,對不同的環(huán)境與水體通過立方環(huán)境映射等技術(shù),得到更好的光影效果,呈現(xiàn)出更真實的水面特效。

2 基于Gerstner波模型的水面波動

Gerstner在1802年首次提出了精確描述任意幅度水波的模型,該模型描述了在水深比波長大的情況下表面波的擺線運(yùn)動。模型中的偏移量由下列方程決定:其中,X0=(x0,y0)是不受干擾的表面上的點(diǎn),A是振幅,K是波矢,k是其大小,ω為水波的頻率,t為時間。

確立了Gerstner波模型后,選取不同的參數(shù)以及疊加方式可以得到理想的水面波動。

2.1 波矢及波形曲線

波矢K= (kx,ky),它是一個水平向量,方向為水波傳播的方向,k=2π/λ。

在傳統(tǒng)的模擬方法中,通常使用k值在XZ平面和YZ平面生成擺線,這種方法雖然計算量較少,但是使得Gerstner波在這兩個平面上的波動曲線完全相同,從而使XY平面上的各點(diǎn)圍繞各自原點(diǎn)振動,軌跡較單一。針對這個現(xiàn)象,本文分別在XZ、YZ平面內(nèi)分別使用kx、ky來生成擺線。該擺線可以由如下的方法生成:在一個半徑為1/kx、圓心為M的圓盤內(nèi),距M為A處有一點(diǎn)P,當(dāng)圓盤在XZ平面內(nèi)通過M 點(diǎn)的軸旋轉(zhuǎn)前進(jìn)時P點(diǎn)所形成曲線就是我們定義的擺線,如圖1所示。

Figure 1 Gerstner wave in XZplane圖1 XZ平面內(nèi)的Gerstner擺線

在YZ平面內(nèi),圓盤的半徑則為1/ky。通過選取不同的kx與ky值進(jìn)行搭配,可以得到XY平面上的點(diǎn)不同的振蕩形式,從而得到不同的波形。

2.2 振幅

振幅A反映波動的能量,控制著波動的幅度。通過擺線的繪制可知:當(dāng)kA<1時,波的形態(tài)是正常的,并且當(dāng)kA越接近于1時,波峰更尖,波谷更平緩;當(dāng)kA>1時,在波峰上將會形成環(huán),發(fā)生破碎,水波內(nèi)部將會展示出來,達(dá)不到預(yù)期的真實效果。因此,通過選取不同的振幅與波長可以得到尖銳程度不同的波形。

使用傳統(tǒng)的Gerstner波模型模擬水面波動,依然面臨著水波較平緩的問題。為了解決這個問題,李蘇軍[8]提出將一高頻小振幅(小于水面波振幅的1/3添加到場景中)波作為背景添加到場景中,使其不至于影響整個水面波形,同時,增加水面的隨機(jī)性、復(fù)雜性。本文在此實驗基礎(chǔ)上,提出在波動的振幅A上添加一個-1/3~1/3振幅的隨機(jī)擾動:

其中,A為水波初始振幅,At為t時刻水波的振幅。此方法相較于之前的方法,不但減少了計算量,而且更好地增加了水面波動的隨機(jī)性和復(fù)雜性。

2.3 疊加方式

單一的Gerstner波無法滿足對各種波形的需要,經(jīng)實驗分析,三至五個Gerstner波的疊加可以在效果和運(yùn)算時間上得到很好的平衡。使用下面的公式得到疊加后水波各點(diǎn)的位置:

其中,Ki為第i個波的波矢,Dxi與Dyi分別為第i個波的單位波動向量Ki/k在x、y方向上的大小,ωi為第i個波的頻率,Ati則為第i個波隨機(jī)擾動下的振幅。

從圖2可以看出,選擇合適的Gerstner波進(jìn)行疊加,可以得到各種波形。

Figure 2 Effect of three Gerstner waves圖2 三個Gerstner波疊加效果

本文在此基礎(chǔ)上,提出將疊加的Gerstner波分為大波和小波兩類。將該場景下合適的水面波動振幅下的波定義為大波,大波的頻率低于小波,使用大波來控制整體水面的波動形態(tài)。小波的振幅控制在大波振幅的1/10以內(nèi),頻率要高于大波,用來展示更細(xì)致的水體表面細(xì)節(jié)。在此分類下調(diào)節(jié)參數(shù)可以更方便地控制波形。添加隨機(jī)擾動時,不必對所有波都進(jìn)行操作,過多的擾動會導(dǎo)致波形難以控制。如果需要整體波動上的多變,可將隨機(jī)擾動添加到某一大波,如果追求表面細(xì)節(jié)的細(xì)致,則將隨機(jī)擾動添加到某一小波。最終得到理想的波形。

2.4 浪花與漣漪的研究

浪花是三維場景中常見的水面效果。由于浪花很難用圖元表示,所以實現(xiàn)浪花效果的常用方法是使用粒子系統(tǒng)。其基本思想是采用大量的微小圖元作為浪花粒子來模擬不規(guī)則的浪花,賦予這些浪花粒子大小、形狀、顏色、生命及運(yùn)動特征等屬性,這些屬性會隨著時間而變化,從而模擬出浪花的不規(guī)則運(yùn)動。具體的實現(xiàn)過程分三步:(1)粒子初始化,賦予每個粒子初始屬性值;(2)粒子移動,每個粒子開始運(yùn)動構(gòu)成浪花不規(guī)則運(yùn)動;(3)粒子的消亡和產(chǎn)生,舊的粒子消失,新的粒子誕生,粒子碰撞后融合。

被風(fēng)吹起的水面波紋就是常見的漣漪效果,漣漪的形狀大致呈一些弧度很大的同心圓。通常用來實現(xiàn)漣漪效果的方法是對相位進(jìn)行擾動,而且這一擾動在振源發(fā)出的射線上應(yīng)具有一定的繼承性。具體的做法是把相位用極坐標(biāo)表示,加入擾動,求出每個網(wǎng)格點(diǎn)的相位值,然后采用對周圍網(wǎng)格點(diǎn)的相位值進(jìn)行雙線性差值的方法生成任意非網(wǎng)格點(diǎn)的相位值。

3 水面光影

3.1 立方環(huán)境映射

立方環(huán)境映射是環(huán)境映射技術(shù)的一種,在三維圖形渲染和游戲中得到廣泛的使用。如圖3所示,立方環(huán)境映射假想有一個巨大的立方體環(huán)繞在物體周圍。物體所在的周邊環(huán)境被映射到立方體的六個面上,然后存儲為六幅紋理圖像。這六幅紋理圖像就構(gòu)成了立方環(huán)境映射的環(huán)境圖。紋理采樣時假想從立方體中心發(fā)出一條沿反射向量R方向的射線,并計算該射線與立方體面的交點(diǎn),然后根據(jù)相交面確定是六幅圖像中的那一幅,再根據(jù)交點(diǎn)坐標(biāo)在該圖像中按照二維紋理的方式采樣。

Figure 3 Cubic environmental mapping圖3 立方環(huán)境映射

3.2 水面反射

實現(xiàn)水面反射效果的一種常用方法是使用環(huán)境映射。如圖4所示,P是水面上一點(diǎn),N是P點(diǎn)處的單位法線向量,P0是照相機(jī)(觀察者)的位置。由于h=Dz=Pz+μRz,所以μ= (h-Pz)/Rz。使用D作為紋理坐標(biāo)到反射平面中采樣得到P點(diǎn)處的反射顏色。

Figure 4 Reflection effects of water surface圖4 水面反射效果的實現(xiàn)

3.3 水面折射

Figure 5 Refraction effects of water surface圖5 水面折射效果的實現(xiàn)

3.4 顏色融合

在得到P點(diǎn)的反射顏色Creflect與折射顏色Crefract后,通過下面的公式得到P點(diǎn)的最終顏色:

其中,Cambient、Cspecular與Cdiffuse分別為環(huán)境光、鏡面反射光與漫反射光;fspecular與fdiffuse為鏡面反射系數(shù)與漫反射系數(shù);r與t分別為水面的反射率與透明度,根據(jù)不同環(huán)境下的不同水體,調(diào)節(jié)r與t可以得到理想的水面光影。

4 實驗結(jié)果與分析

根據(jù)以上方法,模擬水面特效。采用 Windows XP平臺下的Visual C++6.0和OpenGL 3.0,并通過GLSL使用GPU進(jìn)行渲染。硬件平臺為Intel Pentium Dual-Core E6700 3.2GHz,2 GB DDR3-1333 內(nèi) 存,顯 卡 為 ATI Radeon HD 4350。

圖6為模擬結(jié)果,實驗均采用1 440×900的分辨率。圖6a為使用k生成擺線下的單一Gerstner波動下的水面,它在水平面兩個傳播方向上的分振動曲線是相同的。圖6b為分別在XZ、YZ平面內(nèi)使用kx、ky生成擺線下的單一Gerstner波動水面,渲染速度可達(dá)153幀/s,波形有變化但是波動較平緩,水面細(xì)節(jié)很少,只適合于單一動力源(如單向風(fēng))下較平靜的內(nèi)陸水體。圖6c為四個Gerstner波疊加下的水面,采用兩個大波和兩個小波疊加的方式,其中一個大波為另一個大波振幅的1/3,作為背景波,得到了較為復(fù)雜的波動,表面的細(xì)節(jié)也更豐富,渲染速度可達(dá)123幀/s。圖6d為在四個Gerstner波疊加的基礎(chǔ)上對其中一個大波添加了隨機(jī)擾動,使波形更加豐富,對水面細(xì)節(jié)也有一定的提高,渲染速度均值為111幀/s,高于一般游戲引擎下的水面模擬75幀/s,足以滿足游戲場景、虛擬現(xiàn)實應(yīng)用的需要。圖6e為圖6d的線框圖。圖6f為反射率0.7、透明度0.3下的水面場景。根據(jù)不同環(huán)境與水體的要求,修改反射率與透明度,可以得到理想的水面光影效果。

Figure 6 Experimental results圖6 實驗結(jié)果

5 結(jié)束語

本文通過對Gerstner波參數(shù)與疊加方式的研究,對波動中的振幅添加了隨機(jī)擾動,并對疊加的Gerstner波進(jìn)行分類控制,通過對水面光線反射與折射現(xiàn)象的研究,使用反射率與透明度控制光影效果,最終得到了更加真實的水面特效以及不錯的渲染速度。

下一步的工作重心將會放在水面刻蝕等光學(xué)效果以及浪花、漣漪等物理過程的研究。并進(jìn)一步研究可編程找色器,繼續(xù)挖掘GPU的渲染潛能。

[1] Max N L.Vectorized procedural models for natural terrain:Waves and islands in the sunset [J].ACM SIGGRAPH Computer Graphics,1981,15(3):317-324.

[2] Peachey D R.Modeling waves and surf[J].ACM SIGGRAPH Computer Graphics,1986,20(4):65-74.

[3] Fournier A,Reeves W T.A simple model of ocean waves[J].ACM SIGGRAPH Computer Graphics,1986,20(4):75-84.

[4] Tessendorf J.Simulating ocean water[C]∥Proc of SIGGRAPH’01,2001:1.

[5] Tong Ruo-feng,Wang Guo-zhao.Waves modeling for computer animation[J].Chinese Journal of Computers,1996,19(8):594-599.(in Chinese)

[6] Liu Jie,Zou Bei-ji,Zhou Jie-qiong,et al.Modeling Gerstner waves based on the ocean wave spectrum[J].Computer Engineering &Science,2006,28(2):41-44.(in Chinese)

[7] Wang Hai-ling,Yin Gui-sheng,Zhang Jing,et al.Dynamic water surface simulation method based on improved surface entropy[J].Computer Engineering,2011,37(6):24-26.(in Chinese)

[8] Li Su-jun,Yang Bing,Wu Ling-da.Modeling and rendering of ocean scene based on Gerstner-rankine model[J].Journal of Engineering Graphics,2008,29(2):77-82.(in Chinese)

附中文參考文獻(xiàn):

[5] 童若鋒,汪國昭.用于動畫的水波造型[J].計算機(jī)學(xué)報,1996,19(8):594-599.

[6] 劉潔,鄒北驥,周潔瓊,等.基于海浪譜的Gerstner波浪模擬[J].計算機(jī)工程與科學(xué),2006,28(2):41-44.

[7] 王海玲,印桂生,張菁,等.基于改進(jìn)曲面熵的動態(tài)水面模擬方法[J].計算機(jī)工程,2011,37(6):24-26.

[8] 李蘇軍,楊冰,吳玲達(dá).基于Gerstner-rankine模型的真實感海洋場景建模與繪制[J].工程圖形學(xué)報,2008,29(2):77-82.

Simulating water effects in the common three-dimensional scene

ZHUANG Gan-lin,CHEN Xiu-hong
(School of Digital Media,Jiangnan University,Wuxi 214122,China)

For the problem that it is difficult to balance realism and real-time in modeling water,a new water effects simulation method based on Gerstner wave model is proposed.Firstly,random perturbations are added into the amplitude in order to make the fluctuations varied.Secondly,the superimposed Gerstner waves are divided into large waves and small waves,and it is more convenient to control waveform by changing the parameters of the different types of wave.Finally,the reflectivity and transparency are used to adapt to different environments and waters.The experimental results show that the new model not only presents a more realistic water effects,but also gets an ideal rendering speed.

water effects;waves simulation;Gerstner wave;random perturbations;waveform control;reflectivity;transparency

TP391.41

A

10.3969/j.issn.1007-130X.2014.04.030

2012-08-21;

2013-01-21

通訊地址:214122江蘇省無錫市濱湖區(qū)蠡湖大道1800號江南大學(xué)桔園30號樓526室

Address:Room 526,Building 30,Juyuan,Jiangnan University,1800Lihu Avenue,Binhu District,Wuxi 214122,Jiangsu,P.R.China

1007-130X(2014)04-0746-05

莊甘霖(1987-),男,山東濰坊人,碩士生,研究方向為計算機(jī)圖形學(xué)。E-mail:zglok@163.com

ZHUANG Gan-lin,born in 1987,MS candidate,his research interest includes computer graphics.

猜你喜歡
擺線水波振幅
Your Name
灃河水波
Your Name
擺線輪的建模與仿真
戈壁里的水波
擺線銑削在硬零件槽銑加工中的應(yīng)用技術(shù)
擺線齒輪和傳動特點(diǎn)
十大漲跌幅、換手、振幅、資金流向
十大漲跌幅、換手、振幅、資金流向
十大漲跌幅、換手、振幅、資金流向