亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于simplex 噪聲的實時火焰繪制

        2012-12-31 00:00:00鄭娜段茗等
        計算機光盤軟件與應(yīng)用 2012年23期

        摘要:本文提出了一種基于simplex 噪聲的游戲中高效率火焰的繪制方法。其基本思想是,在光線行進過程中,將火焰的輪廓紋理繞y軸旋轉(zhuǎn)一周獲得基本的火焰形狀,并用simplex 噪聲擾動來實現(xiàn)動態(tài)的火焰效果。當火中有其他物體時,場景的深度信息被事先存儲在一張深度紋理中,并在光線行進過程中將采樣點的深度與場景的深度進行比較,作為光線行進終止的條件;因為采樣點的不連續(xù)性,會在火與物體相交處出現(xiàn)帶狀分層現(xiàn)象,本文采用了“多采樣一次”來解決這一問題。另外,本文通過對頂點位置進行偏移,實現(xiàn)了簡單的受風影響的火。最后,本文給出了火海的繪制方法。

        關(guān)鍵詞:simplex噪聲;光線行進;場景深度;火海;實時性

        中圖分類號:TP391.41 文獻標識碼:A 文章編號:1007-9599 (2012) 23-0000-02

        火是自然界中常見的現(xiàn)象之一,在電影特效、游戲制作、場景模擬教學(xué)、搶險救災(zāi)演練等許多領(lǐng)域都有重要應(yīng)用。隨著計算機圖形學(xué)的發(fā)展,為適應(yīng)各個領(lǐng)域的需求,人們采用了不同的方法來模擬火焰,并取得了很大的成就。

        本文采用simplex 噪聲來模型火焰[1],既能實現(xiàn)較為逼真的火焰,又具有較低的算法復(fù)雜度,在大型網(wǎng)絡(luò)游戲、場景模擬等領(lǐng)域都可以被采用。

        本文算法是在GPU中基于物體坐標系實現(xiàn)的,眼睛坐標也變化到物體坐標系下相應(yīng)的位置,因此此算法具有很好的移植性,可以適應(yīng)于不同的外部環(huán)境。

        1 光線行進與顏色轉(zhuǎn)化

        火焰的效果是在GPU中用光線行進算法實現(xiàn)的。這一算法是在物體坐標系下展開的。因此,在頂點著色器中,如果對單位正方體盒子做了平移或者縮放操作,眼睛坐標的位置都需要做相反的操作,以保證光線行進的準確性。這里,正方體盒子 坐標的長度均為1,范圍為 。

        每一條光線從視點位置發(fā)出,接觸到正方體盒子時光線行進開始,離開盒子時光線行進結(jié)束。在光線行進過程中,每一條光線都被分成等距離的多段,每一段的長度為一固定值;而對每一個采樣點,都對其豎直方向賦予一個系統(tǒng)的時間值,使其隨著時間進行變化,然后用simplex噪聲對其擾動,以獲得動態(tài)的火焰的3D噪聲灰度圖。

        本文繪制火焰時使用的唯一紋理是火焰輪廓紋理。通過將采樣點的位置繞縱坐標旋轉(zhuǎn)獲得火焰輪廓紋理對應(yīng)的橫坐標,以獲得基本的火焰形狀。若采樣點位置坐標為 ,則其與紋理坐標的映射可采用以下公式獲得:

        其中, 對應(yīng)紋理的坐標, 為粗糙系數(shù), 為對采樣點位置進行擾動之后的值。

        當遇到結(jié)束條件(離開正方體盒子或遇到障礙物)時,光線行進終止。此時,將這條光線各個采樣點獲得的顏色疊加,獲得的最終的顏色值賦給像素著色器的對應(yīng)像素,即可得到對應(yīng)像素的顏色。

        2 場景深度的獲取與反走樣[2]

        當把一個物體(如燃燒的木頭、在火上架著的水壺等)放入到火焰中時,就需要獲取到物體的深度信息,本文是這樣實現(xiàn)的:

        2.1 首先獲得物體(如木頭、水壺等)的深度信息,并將其存儲在一張額外的紋理中(這一步可以在GPU中實現(xiàn),用FBO將場景的深度信息綁定到紋理。只需將深度測試打開,獲取其深度即可)。

        2.2 在光線行進過程中,對已事先存儲了深度信息的紋理進行采樣,獲得場景的深度值。當采樣點的深度值大于這一點場景的深度值時,則光線行進對本條光線的采樣結(jié)束。

        當進行場景的深度測試之后,因為采樣點的不連續(xù)性,就會在火與物體的交匯處,出現(xiàn)帶狀分層現(xiàn)象。當物體的深度變化比較明顯的時候,這一現(xiàn)象尤為突出。

        為了解決這一問題,我們采用“多采樣一次”的方式。

        在光線行進過程中,對于每一個采樣點 ,都同時判斷它的下一個采樣點 的深度值是否大于場景的深度。如果 的深度值大于場景深度,則我們定義光線行進的下一個采樣點,即最后一個采樣點為光線與物體的交點(設(shè)這一點為 ),其顏色值由 對其貢獻的權(quán)重值決定。具體公式為:

        (1)

        上式中, 表示 對其貢獻的權(quán)重,其初始值為1; 表示 點與采樣點 之間的距離; 為采樣步長,即采樣點 與 之間的距離。

        獲得權(quán)重 之后,即可將其作為采樣點顏色的修正值,以消除因采樣的不連續(xù)性而造成的帶狀分層現(xiàn)象。

        3 受風的影響的火

        當受風的影響時,火的燃燒方向會受風的影響做一些偏斜。風越大,則火受到的沿風方向的水平力越大,其偏斜的角度也越大。為了實現(xiàn)這一效果,我們在頂點著色器中對其頂點的位置作了一定的偏移,偏移的大小與風的大小和頂點的位置有關(guān)。其中,偏移量 由以下方式獲得:

        上式中, 表示頂點縱坐標的值,因為用于描述火的單位正方體盒子的坐標范圍是-0.5~0.5, 這里加上0.5即可把頂點范圍變到0~1。新的頂點位置的橫坐標 可以通過以下方式計算得到:

        上式中, 作為偏移量的系數(shù),可以控制偏移的大小,與風的大小成正比。因為自然界中的風的大小和方向不是固定不變的, 的值可以通過外部線性隨機函數(shù)賦值獲得。

        對于受風影響的火,我們對采樣點沿斜向上的方向賦予隨時間變化的數(shù)值,風越大,傾斜的程度越大。

        4 火海的實現(xiàn)

        本文采用基本的長方體盒子來實現(xiàn)火海的效果。設(shè)采樣點位置 ,長方體盒子的長寬高分別為: 、 、 ,并且假設(shè)長方體的最長軸與橫坐標平行,長方體盒子的中心依然處于原點位置,則 點與紋理坐標對應(yīng)如下:

        上式中, ,可知,紋理的采樣方式由 點橫坐標的位置有關(guān):當 點處于長方體盒子的兩端時,則繞其中心旋轉(zhuǎn)使火焰兩端看起來平滑;而當 點處于盒子的中間位置時,僅使紋理與其縱坐標的位置對應(yīng)。

        5 結(jié)果與小結(jié)

        本文基于simplex噪聲的火焰效果是在普通的PC機上實現(xiàn)的,其硬件配置為Intel(R) Core(TM)2 Duo 2.93Hz、DDR 2GB、GeForce GTX 260,軟件環(huán)境為VS2008、OpenGL 2.0、OSG 8.4。這里生成火焰的光線行進算法的步長設(shè)置為 ,火焰灰度圖由4個不同頻率的simplex噪聲疊加而成,頻率系數(shù)分別為 。

        本文實現(xiàn)基于simplex噪聲的柏林火。通過將火焰的輪廓紋理繞縱坐標旋轉(zhuǎn)獲得基本的三維火焰形狀,然后用simplex噪聲對其進行擾動。當火與其他物體交互時,本文進行了場景深度測試并且解決了因采樣點的不連續(xù)性造成的帶狀分層現(xiàn)象。本文通過對頂點位置進行偏斜實現(xiàn)了受風影響的火。另外,本文給出了火海的繪制方法。以上所有算法均是在GPU實現(xiàn)的,因此保證了較高的效率,可以適應(yīng)游戲場景中對實時性要求比較高的特點。

        參考文獻:

        [1]White Paper - Perlin Fire. NVIDIA SDK 10: PerlinFire.

        [2]KEENAN CRANE I. L., TARIQ S.: Real-Time Simulation and Rendering of 3D Fluids, GPU Gems 3, first ed. Addison-Wesley Professional,2007.

        *國家自然科學(xué)基金項目(No. 60903118)基于圖形處理器的高性能計算(High Performance computing based on GPU);

        *國家自然科學(xué)基金項目(No. 60832011)先進塔臺視景模擬系統(tǒng)基礎(chǔ)理論與關(guān)鍵技術(shù)(Basic theory and key technology of advanced visual simulation system for Tower)。

        [作者簡介]

        鄭娜(1987-),女,山東濰坊人,碩士研究生,主要研究方向:計算機圖形學(xué),虛擬現(xiàn)實;段茗(1986-),男,四川省廣安市人,碩士研究生,主要研究方向:計算機圖形學(xué),虛擬現(xiàn)實;姜宏(1986-),男,四川宜賓人,碩士研究生,主要研究方向:圖形學(xué),人機交互;孫青云(1987-),女,安徽宣城人,主要研究方向:信息安全,圖形圖像。

        亚洲精品中国国产嫩草影院美女| 强开小婷嫩苞又嫩又紧视频| 亚洲欧美精品suv| 欧美做受视频播放| 国产精品白浆免费观看| 亚洲一区二区三区在线视频| 久久国产成人精品国产成人亚洲| 欧美丰满大屁股ass| 99久久精品一区二区三区蜜臀 | 亚洲国产字幕| 黄色精品一区二区三区| 久久综合亚洲色一区二区三区| 国产一区二区三区av在线无码观看| 亚洲欧美成人在线免费| 精品亚洲av乱码一区二区三区| 国产午夜手机精彩视频| 亚洲av成人精品日韩一区| 国产男女做爰猛烈视频网站| 少妇被按摩出高潮了一区二区| 一进一出一爽又粗又大| 久久AV中文一区二区三区| 丁香婷婷激情俺也去俺来也| 香蕉视频在线观看亚洲| 久热综合在线亚洲精品| 免费va国产高清不卡大片| 在线观看一区二区中文字幕| 亚洲乱亚洲乱妇50p| 99久久久久国产| 国产亚洲精品一区二区在线播放| 激情综合五月| 秋霞鲁丝片av无码| 亚洲成a人片77777kkkkk| 久久精品国产亚洲av四叶草| 日产无人区一线二线三线乱码蘑菇| 国产精彩视频| 精品国产日韩亚洲一区在线| 人人人妻人人澡人人爽欧美一区 | 国产99re在线观看只有精品| 国产激情免费观看视频| 99久久无色码中文字幕人妻蜜柚| 拍摄av现场失控高潮数次|