計算機模擬微波的新方法_第1頁
計算機模擬微波的新方法_第2頁
計算機模擬微波的新方法_第3頁
計算機模擬微波的新方法_第4頁
計算機模擬微波的新方法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機模擬微波的新方法

0可擴充水波動力學(xué)和光學(xué)特性的波波現(xiàn)象一直是計算機圖形學(xué)領(lǐng)域的研究熱點,尤其是需要高時性的研究領(lǐng)域。因涉及到的物理仿真過程極其復(fù)雜,CG中通常的作法是采用光線追蹤和復(fù)雜的微分方程要來模擬水波光學(xué)現(xiàn)象(如折射、反射等)和動力學(xué)行為(如水波流動、繞流等現(xiàn)象)。然而,這種基于水波動力學(xué)和光學(xué)等學(xué)科建立起來的真實物理模型的方法雖然逼真度、準(zhǔn)確性都非常高,但往往要好幾個小時才能渲染一幀,實時性不高。這在實時性要求很高如:三維游戲等應(yīng)用領(lǐng)域中是不可取的,必須要很好地權(quán)衡畫面的質(zhì)量與性能兩方面的矛盾,本文探討一種既不損失水波真實性又能很好滿足游戲玩家視覺效果的水波渲染方法。本文探討有限域水波的模擬,包括水波動力學(xué)特性和光學(xué)特性兩個方面,當(dāng)然更高級的特性需要硬件支持,光學(xué)特性是通過圖形編程單元(GraphicProgrammingUnit,GPU)來實現(xiàn)。與模擬大多數(shù)基于物理效果的自然現(xiàn)象類似,水波的仿真也是分為兩個階段,第一階段是基于物理學(xué)的水波生成階段,即水波建模階段。該階段要仿真出水波受內(nèi)外力作用下的表現(xiàn),也就是水波如何運動、如何改變形狀、如何與周圍環(huán)境交互(如封閉容器中水波是如何衍射的等現(xiàn)象)。第二階段是可視化階段,這一階段首先介紹光照模型,然后著重介紹如何采用立方體環(huán)境映射來生成周圍環(huán)境的反射。1波的物理建模1.1波的振動方程1)水波一維能量分布根據(jù)頻率分布模型(Pierson-MoskowitzModel),該能量分布模型既精確計算量又小,是目前最好的計算水波一維能量分布模型,Epm(f)=(α.g2(2π)4f5)-54(ffm)-4Epm(f)=(α.g2(2π)4f5)?54(ffm)?4其中α=0.008,fm=0.13*gv,g=9.80665m/s2α=0.008,fm=0.13*gv,g=9.80665m/s2(重力加速度),v為風(fēng)速,fm為最大頻率。2)色散方程(DispersionEquation)由ω(k)=√gk=√g2πλ=2πfω(k)=gk??√=g2πλ???√=2πf,得:λ=g2πf2λ=g2πf23)相位角分布D(f,θ)=τ(s+1)2τ(s+0.5)√π(cos2θ2)5D(f,θ)=τ(s+1)2τ(s+0.5)π√(cos2θ2)5E(f,θ)=Epm(f)*D(f,θ)=(α.g2(2π)4f5)-54(ffm)-4*τ(s+1)2τ(s+0.5)√π(cos2θ2)5E(f,θ)=Epm(f)*D(f,θ)=(α.g2(2π)4f5)?54(ffm)?4*τ(s+1)2τ(s+0.5)π√(cos2θ2)55)振幅分布AA=√E(f)*D(f)k*f*π2ω6)二維振動方程ξ=Asin(k*x+ω*t),k=2*πλ(λ為波長),t為時間,ω為相位角,x為位置。由二維振動方程很容易推廣到三維,有了以上物理數(shù)學(xué)模型后,再根據(jù)波的疊加原理就可以計算得到任意(x,y)點處波的高度值。雖然根據(jù)動力學(xué)建立起來的水波模型能更真實地模擬水波靜、動力學(xué)效果,還可以提供充分的交互性,但求解微分方程很費時,這種方法不適于實時性要求很高的游戲中。1.2模擬在制備抗波設(shè)計中的應(yīng)用雖然水波建模數(shù)學(xué)上也有很多可行的方法,但最簡單的方法就是采用Prelin噪聲,可以在無用戶交互的情況下能大致模擬出水波的運動,該方法簡單、實時性很高,再結(jié)合目前許多先進的圖形渲染技術(shù),可以模擬實時性很高、又不損失視覺效果各種水波反射、折射等現(xiàn)象,本文就是采用這種方法進行水波的物理建模。Perlin于1985年提出噪聲函數(shù)的應(yīng)用,該方法采用三維整數(shù)網(wǎng)格來定義噪聲函數(shù)。在每一個整數(shù)網(wǎng)格點(i,j,k)(其中i,j,k均為整數(shù))上定義一隨機灰度值(0~255)作為該函數(shù)的值。非整數(shù)網(wǎng)格點的函數(shù)值則通過該點相鄰的8個整數(shù)網(wǎng)格點處的函數(shù)值而得到。具體實現(xiàn)時,可采用一個查找表來存儲整數(shù)網(wǎng)格點處的噪聲函數(shù)值,不會出現(xiàn)函數(shù)值的突變現(xiàn)象,但該函數(shù)T(u,v,w)在相鄰網(wǎng)格邊界面上的剃度是不連續(xù)的,從而導(dǎo)致了在某些方向上存在人工的痕跡,這些可以通過三次插值來改善。2波物理建模階段第二階段是可視化階段,即水波渲染階段,該階段采用水波建模階段生成的水波數(shù)據(jù)然后將水波渲染到屏幕上,同時能呈現(xiàn)出水表面與周圍環(huán)境以及光線之間復(fù)雜的光學(xué)特性,而如何對這些光學(xué)特性的建模對最終視覺效果是至關(guān)重要的。與前面水波物理建模階段本質(zhì)區(qū)別就是,水波物理建模階段數(shù)據(jù)的生成都是由CPU計算完成,而光學(xué)建模階段則是在GPU上通過逐像素計算完成的,這就需要硬件支持可編程軟件接口PS2.0及以上。而如今很多中端硬件都支持PS2.0及以上(PixelShader2.0,像素著色器),如:Nvidia公司的Geforce系列,ATI公司的R9800XT/9600XT,Nvidia公司的6200/6600/6800,而Nvidia公司的6200/6600/6800支持PS3.0也是目前硬件支持PS的最高版本。硬件的發(fā)展使得開發(fā)實時性要求高的圖形技術(shù)(如實時水波)更加方便,簡單。限于篇幅這里僅討論反射現(xiàn)象,截圖中讀者還可以看到采用基本光照模型實現(xiàn)的折射、高光等現(xiàn)象。2.1光照模型的應(yīng)用光照模型或者明暗模型主要用于表示物體表面某點處的光強度的計算。實際中有兩種做法:其一是將光照模型應(yīng)用于每個可見面的每個點,另一種方法是,將光照模型應(yīng)用在面片上少量點然后對亮度進行插值。前者由于計算量很大難以滿足高實時性的要求,如:輻射度算法。故本文采用插值方法。1環(huán)境光模擬一個物體表面即使不直接暴露于光源下,只要其周圍的物體被照明,它也可能看得見。在基本光照模型中,只須改變一個場景的基準(zhǔn)光亮度,就可以簡單地模擬一種從不同物體表面所產(chǎn)生的反射光的統(tǒng)一照明,稱為環(huán)境光或背景光。環(huán)境光沒有空間或方向上的特征,在所有方向上和所有物體表面上投射的環(huán)境光數(shù)量都恒定不變。用參數(shù)Ia表示。環(huán)境光計算公式:Iambdiff*Ia2入射干氣量的影響場景中每個面上的漫反射是恒定不變的,與觀察方向無關(guān)。用參數(shù)kd表示入射光線中被漫反射部分的百分比,該參數(shù)表示漫反射系數(shù)或漫反射率。如果Il是光強,則表面上某點處的漫反射方程為:Il,diff=kd*Il*cosθ(θ為入射角)可以看出,若在某特定點,入射光垂直表面,則該點完全被照射。當(dāng)光照的角度遠離表面法向量時,該點的光亮度將降低。僅當(dāng)入射角在0°~90°時(cosθ在0與1之間),點光源才照亮面片;若cosθ為負值,則光源位于面片之“后”。若→Ν為物體表面的單位法向量,且→L為從表面上一點指向點光源的單位矢量,則:cosθ=→Ν*→L,且對單個點光源的光照中的漫反射方程為:Ιl?diff=kd*Ιl*(→Ν?→L)(·表示點乘)3ph東北部光照模型當(dāng)我們觀察一個光照下的光滑物體表面如磨光的金屬、蘋果或人的前額時,可能在某個觀察方向看到高光或強光,這個現(xiàn)象就是鏡面反射,因為在接近鏡面反射角的一個會聚區(qū)域內(nèi)入射光的全部或絕大部分成為反射光??梢杂孟率絹碛嬎阄矬w表面上某點處的鏡面反射:Ιspec=ks*Ιl*(→V?→R)ns(·表示點乘)其中→V表示從物體上某點指向視點的單位矢量,→R單位化的反射方向,ns越大,則表面的粗糙值較小(小于1),對于理想反射器ns是無限的,而粗糙表面ns的值接近1。這就是著名的Phong光照模型,實際上由于計算反射向量與入射光線的點積比較費時,往往用簡化的Phong模型代替。為了簡化,作如下假設(shè),假設(shè)水波數(shù)據(jù)是從高度圖(用灰度圖來存儲高度信息的圖)得到,水波表面被分割成很多網(wǎng)格,網(wǎng)格上每個頂點都除了位置信息外,還有法線信息;假設(shè)水面是完全清澈透明,然而實際上水中因含懸浮顆粒狀的雜質(zhì),這些粒子像水分子本身一樣,會散射和吸收而使光線衰減,也就是為什么淺水比深水區(qū)更透明,光在介質(zhì)中傳播的距離越遠,被懸浮粒吸收和散射的幾率就越大。圖一是采用Phong模型的鏡面光照效果。2.2環(huán)境設(shè)計圖的映射為了表現(xiàn)周圍環(huán)境在水面的反射效果,本文采用cubemap(cubicenvironmentmapping,立方體環(huán)境映射)來實現(xiàn),效果如圖2所示,采用了前述介紹的幾種基本光照模型。Cubemap屬于環(huán)境映射的一種,需硬件支持,其基本原理如下:cubemap由6個正方形紋理貼圖組成,6個正方形貼圖圍成的立方體構(gòu)成了環(huán)境貼圖,視點固定在物體的中心,從而渲染出6個視域方向的環(huán)境貼圖。設(shè)想視點固定在一間房子的中心,假設(shè)房子是空的,那么構(gòu)成的6個視圖就包括四面強、天花板和地板。然后就建立從物體上某點的入射光方向到環(huán)境貼圖之間的映射關(guān)系,假設(shè)反射光線向量和環(huán)境貼圖立方體處于同一個坐標(biāo)系下(假設(shè)為世界坐標(biāo)系),其映射算法如下:1)找到入射光與哪個環(huán)境貼圖相交,也就是通過比較單位化的反射光向量和位于原點的單位正方體區(qū)域,從而確定入射光與哪個面相交。2)將入射光映射到紋理空間(u,v)坐標(biāo)系中,如:點(x,y,z)與負z軸的正平面相交,則映射方法為:u=x+0.5,v=-z+0.5也就是在世界坐標(biāo)系下,將物體表面上某點的入射光位置存入cubemap中,相當(dāng)于建立一個360度的查找表,由3維方向向量入射光線索引cubemap,這樣就可以用來建立反射立方體,照相機位于cubemap中心,周圍環(huán)境通過立方體六個面被渲染,這一步是沿主軸方向?qū)⒅車h(huán)境色硬編碼,也就是通過預(yù)計算完成;在第二個pass中,反射物體就會被渲染,反射向量是基于頂點或者基于像素計算的,反射向量用作cubemap的索引,以下是基于(vertexshader)和PS(pixelshader)實現(xiàn)的cubemap算法(假設(shè)頂點是在世界坐標(biāo)空間):3模型和瞳片的耦合由于存在各種水波模型,也存在多種水波渲染器(也就是用來表現(xiàn)水波光學(xué)特性),我們可以選擇不同的水波模型,也可以選擇不同的渲染器,水波模型和水波渲染器的多樣性就要求能通過公共的數(shù)據(jù)接口,使得渲染器和水波模型相互獨立,該系統(tǒng)采用抽象接口來表示公共的數(shù)據(jù),這樣各模塊之間具有松散的耦合性:不同水波模型和渲染器之間只需通過該接口就能完成而無需知道對方。這對將來增加新的水波物理模型或增加新的水波渲染器或同時增加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論