999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

實(shí)時(shí)水面模擬方法研究

2010-01-01 01:44:42劉曉平謝文軍
圖學(xué)學(xué)報(bào) 2010年1期
關(guān)鍵詞:方法模型

劉曉平, 謝文軍

(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院VCC研究室,安徽 合肥 230009)

自然現(xiàn)象的模擬一直是計(jì)算機(jī)圖形學(xué)研究的熱點(diǎn),其中水面的模擬對(duì)自然場(chǎng)景的意義尤為重要。由于水面的物理原型十分復(fù)雜,實(shí)時(shí)地對(duì)其進(jìn)行精確描述相當(dāng)困難,因此研究者們一直在尋求真實(shí)感和復(fù)雜度之間的平衡點(diǎn)。文獻(xiàn)[1]中Nick Foster 等人建立了基于Navier-Stokes 方程的水面模型,模型精確但求解復(fù)雜,不適合實(shí)時(shí)計(jì)算。文獻(xiàn)[2]例舉了線性生成海面網(wǎng)格的方法,采用逆FFT 計(jì)算,求得一定數(shù)量的線性函數(shù)疊加描述波浪,該類(lèi)方法追求統(tǒng)計(jì)學(xué)上的模擬,未考慮物理精確性,有待于與流體動(dòng)力學(xué)理論的結(jié)合;而在游戲等需要快速生成水體的場(chǎng)合,往往采用perlin 噪聲[3]等噪聲源的預(yù)計(jì)算生成水面,該方法可以生成視覺(jué)效果良好的水面,但無(wú)法結(jié)合物理計(jì)算。近年來(lái),由于硬件技術(shù)的發(fā)展,尤其是可編程圖形硬件的出現(xiàn),基于GPU 像素級(jí)的可編程能力,實(shí)時(shí)模擬較復(fù)雜的水面成為可能,各種模擬方法也隨之產(chǎn)生。

而在水體渲染方面,初期常用的方法是構(gòu)建均勻的三角網(wǎng)格,通過(guò)定點(diǎn)的高度變化顯示水面,文獻(xiàn)[4]以三角網(wǎng)格為基礎(chǔ),引入LOD 思想提高繪制速度,和折射反射計(jì)算,建立了完整的海浪模型,但此種方法在較大海域時(shí)必然由于網(wǎng)格量的增大導(dǎo)致速度緩慢。而近來(lái)Cg 語(yǔ)言的片段編程能力使得用少量面片模擬水面成為可能,文獻(xiàn)[5]提出了一種通過(guò)預(yù)生成噪聲紋理的方法,結(jié)合少量的頂點(diǎn)數(shù),通過(guò)查詢紋理圖模擬細(xì)節(jié),該方法獲得了較好的噪聲源,但在渲染大水面時(shí),所需的噪聲圖大小也增大,嚴(yán)重消耗了系統(tǒng)資源。文獻(xiàn)[6]采用了渲染到紋理的方式,實(shí)時(shí)生成折射、反射紋理,并將繪制水面所需的面片數(shù)簡(jiǎn)化到了兩個(gè),方法也具備較好的沉浸感,但其中的擾動(dòng)、凹凸和波光效果仍依賴紋理輸入,渲染效果自然受到紋理大小和質(zhì)量的制約。

因此,為避免復(fù)雜的計(jì)算和對(duì)外部輸入的依賴,基于文獻(xiàn)[6]的用兩個(gè)面片顯示水面的方法,本文提出了一種基于GPU 的實(shí)時(shí)生成和渲染水面的方法。該方法仍使用折射和反射紋理的方式。而不同的是,紋理生成后,水面合成及模擬步驟均在GPU 片段程序中實(shí)現(xiàn)。由于片段程序中顯卡已對(duì)物體進(jìn)行了光柵化操作[7],計(jì)算量不會(huì)隨的水面大小變化,故不需要附加進(jìn)行LOD處理,也不需要附加消耗顯存資源。通過(guò)定義完整地光學(xué)模型,可以達(dá)到了良好的的水面渲染效果,且基于可編程顯卡的強(qiáng)大的流計(jì)算能力,本方法對(duì)渲染速度的影響很小。

1 本文方法

由于本文采用的是兩個(gè)三角形面片組成水面,在OpenGL 中,繪制的水面即位一個(gè)巨大的矩形,四個(gè)頂點(diǎn)的初始紋理坐標(biāo)分別為(0,0), (0,1), (1,0), (1,1),在頂點(diǎn)程序中將未經(jīng)過(guò)投影變換的頂點(diǎn)三維坐標(biāo)和紋理坐標(biāo)傳入片斷程序。片段程序在光柵化時(shí),將根據(jù)各像素點(diǎn)的相對(duì)位置進(jìn)行這些值的插值處理,使得可以獲得各像素點(diǎn)對(duì)應(yīng)的空間坐標(biāo)和紋理坐標(biāo),作為計(jì)算波形的參數(shù)。

1.1 水波的模擬

為進(jìn)行后續(xù)的擾動(dòng)和凹凸計(jì)算,本文要求水波的生成函數(shù)近似可導(dǎo),以顯式獲得水面上任一點(diǎn)的法向量。而由于缺乏位運(yùn)算,缺乏全局緩存,以及數(shù)據(jù)精度的限制等[8],導(dǎo)致了GPU 不能實(shí)現(xiàn)perlin 噪聲等經(jīng)典的噪聲函數(shù)。

因此,考慮GPU 運(yùn)算的這些特點(diǎn),文獻(xiàn)[9]基于線性疊加理論,提出了在頂點(diǎn)程序中使用若干不同相位,不同頻率的正弦波的冪函數(shù)疊加的方法模擬水面。該方法體現(xiàn)了水波在波峰和波谷時(shí)所受的重力影響,且波的數(shù)量足夠多時(shí)可以獲得較復(fù)雜的水面,但如圖1 所示,冪函數(shù)無(wú)法生成波谷處過(guò)渡平緩的曲線。

圖1 3 種函數(shù)波形對(duì)比

因此,考慮GPU 對(duì)指數(shù)函數(shù)的硬件支持,以及顯式求導(dǎo)的快速,本文采用余弦的自然指數(shù)函數(shù)疊加

其中 t 為時(shí)間參數(shù),N 為疊加函數(shù)的數(shù)量, Dnx, Dny為波移動(dòng)的方向分量,f requencen為波的頻率, speedn為波的推進(jìn)速度,參數(shù)A 為 控制振幅。這種方法在保證波浪模擬的同時(shí),不會(huì)增加的計(jì)算負(fù)擔(dān)。

由于法線N 與這兩個(gè)方向向量 xN 、yN 均正交,且 xN 、yN 不重合,因此有

1.2 折射與反射紋理擾動(dòng)與合成

需要對(duì)生成的折射紋理與反射紋理進(jìn)行合成,由于每一點(diǎn)的高度和法線都不同,則該點(diǎn)的折射及反射方向與平靜水面相比會(huì)有一定偏差。因此,為顯示提高所繪水面的真實(shí)感,需要在合成折射、反射紋理時(shí),進(jìn)行符合物理原理的擾動(dòng)。

忽略水面高度的起伏量,如圖2 所示,對(duì)于反射,可見(jiàn)水面法線的變化使得原本沿視線VO而在紋理面上得到的查詢點(diǎn)的Q1 點(diǎn)發(fā)生偏移,移動(dòng)成為P1′點(diǎn);而如圖3 所示,對(duì)于折射,查詢點(diǎn)Q2 點(diǎn)位置移動(dòng)到了P2′點(diǎn),其移動(dòng)趨勢(shì)與反射相反。

圖2 反射擾動(dòng)原理

圖3 折射擾動(dòng)原理

擴(kuò)展到二維的紋理查詢空間,由法線的x,y分量乘以擾動(dòng)參數(shù),分兩個(gè)方向計(jì)算

其中dC 為經(jīng)驗(yàn)常數(shù),在計(jì)算反射時(shí)為正,計(jì)算折射時(shí)為負(fù),且折射時(shí)小于反射。將得到的( Du,Dv)與紋理坐標(biāo)相加,再乘以投影紋理的矩 陣便得到擾動(dòng)后的折射、反射紋理坐標(biāo)。而后引入了菲涅爾(Fresnel)效果的進(jìn)行合成,最后的合成結(jié)果為

1.3 水面光照模型

折射和反射擾動(dòng)在一定程度上增加了水面的真實(shí)感,但不能帶來(lái)水面的起伏感。而水面的起伏在視覺(jué)上很大程度上來(lái)自于水面上的明暗交替和粼粼的波光。依據(jù)圖形學(xué)中對(duì)光照基本分量的定義,以及水面的光學(xué)特點(diǎn),定義一定的光學(xué)模型,以確定像素的最后顏色。

環(huán)境光分量環(huán)境光體現(xiàn)了物體來(lái)自分散在場(chǎng)景中各個(gè)方向光影響的效果,在水面現(xiàn)實(shí)中分量用于表現(xiàn)水的原有顏色,由于水的顏色與所 視深淺相關(guān),因此采用公式 Ambient = Ka× waterColor × (N ? eyeDirection)計(jì)算出該點(diǎn)水 的顏色(如圖4(a))。

漫反射分量漫反射量與光到達(dá)物體表面的入射角度成正比,快速計(jì)算時(shí)采用光源到點(diǎn)的方向向量L 和法線N 的點(diǎn)乘作為強(qiáng)度參數(shù) diffuse =Kd× lightColor × max ( N ?L,0) (如圖4(b)),由于水面的透明,受到滿反射 光的影響極小,因此 dK 可以設(shè)定為接近于0 的 小數(shù),或者可直接忽略該項(xiàng)。

鏡面反射分量鏡面反射分量用于表現(xiàn)主要反射方向附近的反射光,由于水面可視為光滑表面,因此為表現(xiàn)出波光粼粼的效果,鏡面反射項(xiàng)尤為重要。鏡面反射的計(jì)算也要考慮到觀察者的位置,因此將光線與視線的均值H 與法線N的點(diǎn)乘作為控制參數(shù),鑒于水面的光滑特性,應(yīng)設(shè)定較高的光滑參數(shù)shininess 使得高光區(qū)(波光)較小(如圖4(c))

合成對(duì)3 個(gè)分量進(jìn)行合成,得到光照系數(shù)light =ambient+diffuse +specular ,得到實(shí)現(xiàn)最終的光照模型如圖4(d)所示。

圖4 光照模型合成示意圖

2 實(shí)驗(yàn)結(jié)果與分析

本文方法在Intel P4 3.0,2G 內(nèi)存,nVidia 6600GT 顯卡硬件環(huán)境下,實(shí)現(xiàn)效果如圖5 所示。由圖可見(jiàn),該方法較好地表現(xiàn)了場(chǎng)景和物體在水面的倒影,水面下物體的折射,水面擾動(dòng)和光學(xué)模型。

實(shí)驗(yàn)數(shù)據(jù)見(jiàn)表1。可見(jiàn)算法可以達(dá)到實(shí)時(shí),且在相同場(chǎng)景下,還其他方法進(jìn)行了實(shí)驗(yàn):其中,三角網(wǎng)格法才用其中網(wǎng)格法采用了128*128 的較小規(guī)模的網(wǎng)格;噪聲紋理法1 為文獻(xiàn)[5]方法,結(jié)合了32*32 的網(wǎng)格和128*128 的噪聲圖;噪聲紋理法2 為文獻(xiàn)[6]方法,采用了兩個(gè)三角面片,和512*512 的噪聲圖;而本文方法由8 個(gè)正弦指數(shù)函數(shù)疊加。

由對(duì)比可看出,三角網(wǎng)格法雖然有精確的模型,可以顯示接近物理真實(shí)的效果,但速度十分緩慢;而依賴查詢紋理的方法,仍需要控制紋理大小和面片數(shù)量,達(dá)到速度和精度的平衡;相比之下,使用GPU 進(jìn)行水波生成和實(shí)時(shí)運(yùn)算幾乎不需要消耗顯存資源,且無(wú)明顯的速度損失,視覺(jué)真實(shí)感也較好。

圖5 場(chǎng)景演示

表1 運(yùn)行結(jié)果對(duì)比

3 總結(jié)與展望

自然場(chǎng)景尤其是水面的仿真是近年來(lái)的熱點(diǎn)之一。尤其是可編程圖形硬件產(chǎn)生以來(lái),用較少量的面片繪制復(fù)雜的水面成為可能。本文采用GPU 的片段處理器編程技術(shù),實(shí)現(xiàn)了一整套實(shí)時(shí)的水面模擬方法,包括生成水波、計(jì)算法線、折射與反射的擾動(dòng)合成以及光照模型的建立,避免了現(xiàn)有快速渲染效果對(duì)輸入紋理質(zhì)量的嚴(yán)重依賴;同時(shí)基于片段處理器的像素級(jí)操作的特點(diǎn),避免了擾動(dòng)時(shí)對(duì)深度計(jì)算需要和LOD 操作。最后通過(guò)實(shí)例,驗(yàn)證了本文方法的具有良好真實(shí)感效果和實(shí)時(shí)性。但由于GPU 的限制,一方面基于物理的計(jì)算速度尚無(wú)法在處理較大的區(qū)域時(shí)達(dá)到實(shí)時(shí);另一方面由于片段處理器尚不支持位操作,不能生成良好的噪聲。導(dǎo)致現(xiàn)階段只能采用線性疊加的方式,若疊加所用的波源較少,在高角度觀察時(shí)仍能感覺(jué)到波浪的規(guī)律性。

[1] Nick Foster, Dimitri Metaxas. Realistic animation of liquids [J]. Graphical Models and Image Processing (S1077-3169), 1996, 58(5): 471-483.

[2] 聶衛(wèi)東, 等. 基于線性海浪理論的海浪數(shù)值模擬[J].系統(tǒng)仿真學(xué)報(bào), 2005, 5(17): 1037-1044.

[3] Hugo Elias. Perlin noise [EB/OL]. http://freespace. virgin.net/hugo.elias/models/m_perlin.htm.

[4] Jerry Tessendorf. Simulating ocean water [Z]. SIGGRAPH 2001 Course notes, 2001.

[5] Yuri Kryachko. Using vertex texture displacement for realistic water rendering [M]. GPU Gems2, 2005. 283-294.

[6] 馬 駿, 朱衡君, 龔建華. 基于Cg 和OpenGL 的實(shí)時(shí)水面環(huán)境模擬[J]. 系統(tǒng)仿真學(xué)報(bào), 2006, 18(2): 395-400.

[7] Randima Fernando, Mark J Kilgard. The Cg tutorial— the definitive guide to programmable real-time graphics [M]. Addison Wesley, 2004. 14-19.

[8] 吳恩華, 柳有權(quán). 基于圖形處理器(GPU)的通用計(jì)算[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2004, 16(5): 601-612.

[9] 方建文, 于金輝, 馬文龍. 圖形硬件加速的實(shí)時(shí)水面繪制[J]. 計(jì)算機(jī)工程與應(yīng)用, 2006, 42(15): 86-88.

猜你喜歡
方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
學(xué)習(xí)方法
3D打印中的模型分割與打包
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢(qián)方法
捕魚(yú)
主站蜘蛛池模板: 免费女人18毛片a级毛片视频| 久久人体视频| 久久伊伊香蕉综合精品| 天天综合色天天综合网| 国产成人亚洲精品蜜芽影院| 国产欧美一区二区三区视频在线观看| 日韩午夜福利在线观看| 色悠久久综合| 国产91视频免费| 精品国产一区二区三区在线观看| 男女男免费视频网站国产| 丁香亚洲综合五月天婷婷| 日韩精品亚洲精品第一页| 香蕉伊思人视频| 大学生久久香蕉国产线观看| av一区二区无码在线| 不卡国产视频第一页| 久久久久久国产精品mv| 欧美日韩精品一区二区在线线| 国产91特黄特色A级毛片| 99免费视频观看| 欧美 亚洲 日韩 国产| 这里只有精品国产| 国产三区二区| 国产色伊人| 成人在线观看一区| 亚洲嫩模喷白浆| 天天综合色天天综合网| 欧美日韩成人在线观看| 欧美午夜视频| 国产va在线观看| 国产高清免费午夜在线视频| 在线色综合| 亚洲欧美精品日韩欧美| 喷潮白浆直流在线播放| 国产精品偷伦视频免费观看国产| 欧美日韩国产系列在线观看| 天天摸夜夜操| 手机在线看片不卡中文字幕| 九九线精品视频在线观看| 色综合中文| 精品偷拍一区二区| 久久 午夜福利 张柏芝| 国产视频资源在线观看| 天天色综网| 国产麻豆精品久久一二三| 重口调教一区二区视频| 亚洲首页在线观看| 久久精品丝袜高跟鞋| 久久久久久国产精品mv| av大片在线无码免费| 激情视频综合网| 欧美有码在线观看| 一级做a爰片久久毛片毛片| 免费毛片视频| 亚洲成人黄色在线观看| 日本爱爱精品一区二区| 午夜a级毛片| 亚洲h视频在线| 欧美一区福利| 久热精品免费| 狠狠色香婷婷久久亚洲精品| 在线国产欧美| 日韩欧美国产成人| 久久伊人久久亚洲综合| 一区二区欧美日韩高清免费| 欧美国产中文| 国产精品无码AⅤ在线观看播放| 久996视频精品免费观看| 午夜精品国产自在| 色欲综合久久中文字幕网| 免费全部高H视频无码无遮掩| 亚洲无限乱码一二三四区| 成人午夜免费观看| 91系列在线观看| 五月六月伊人狠狠丁香网| 亚洲黄色激情网站| 欧美另类第一页| 亚洲首页在线观看| 欧美精品成人一区二区视频一| 国产精品网址你懂的| 亚洲色图综合在线|