摘 要:介紹了一種利用可編程圖形硬件來實(shí)現(xiàn)水面實(shí)時(shí)渲染的方法。該渲染過程分為兩個(gè)階段,即水面建模和光照實(shí)現(xiàn)。通過當(dāng)前圖形硬件新提供的頂點(diǎn)紋理技術(shù)來對(duì)水面進(jìn)行建模,并結(jié)合環(huán)境紋理映射技術(shù)和二維紋理映射技術(shù)實(shí)現(xiàn)了水面上的反射與折射等光照現(xiàn)象。實(shí)驗(yàn)證明,該方法大大提高了渲染速度,增強(qiáng)了水面渲染的交互性和實(shí)時(shí)性。
關(guān)鍵詞:水面渲染; 頂點(diǎn)紋理; 環(huán)境紋理映射; 二維紋理映射; 交互性; 實(shí)時(shí)性
中圖分類號(hào):TP391.9 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2008)08-2387-03
Interactive real-time water rendering
WU Lei, CHEN Lei-ting, HE Ming-yun
(School of Computer Science Engineering, University of Electronic Science Technology of China, Chengdu 610054, China)
Abstract:This paper presented a way supported by programmable graphics hardware to render water in real-time. The rende-ring process included two stages: water surface modeling and illumination simulation. It took advantage of the vertex texture to model the water surface and simulated the reflection, refraction with environment texture mapping and texture mapping. The experiment proves that it can improve the efficiency of rendering.
Key words:water rendering; vertex texture; environment texture mapping; texture mapping; interactive capability; real-time capability
水面在計(jì)算機(jī)模擬中相當(dāng)?shù)钠毡椋绕涫窃谟螒虍?dāng)中,它們是能夠顯著提高場(chǎng)景真實(shí)度級(jí)別的重要元素。但是能真實(shí)地描述它們卻是一個(gè)很困難的問題,原因在于光線與水面的交互作用,會(huì)帶來很高的視覺復(fù)雜度。在非實(shí)時(shí)渲染中,由于沒有時(shí)間和效率上的考慮,人們能夠顧及到各種因素對(duì)水面的影響,提出了許多水面渲染模型并成功地將它們投入到了商業(yè)應(yīng)用中。Jerry Tessendorf[1]就成功地利用了FFT技術(shù)結(jié)合海洋學(xué)的統(tǒng)計(jì)數(shù)據(jù),采用Pierson-Moscowitz譜模型實(shí)現(xiàn)了對(duì)大場(chǎng)景水面的模擬,并將其運(yùn)用到了《泰坦尼克》《水世界》等好萊塢電影的特效制作中,取得了巨大的成功。但是,由計(jì)算機(jī)圖形硬件的限制,對(duì)于實(shí)時(shí)渲染水面一直不夠理想。尤其在游戲當(dāng)中通常都是采用多重紋理來作一種近似地模擬,雖然交互性能得到很好的滿足,但是渲染的真實(shí)感較差,遠(yuǎn)不能滿足人們對(duì)真實(shí)感的需要。本文采用的方法是利用頂點(diǎn)紋理對(duì)以前的水面渲染技術(shù)進(jìn)行有效簡(jiǎn)化,使其在渲染效率和質(zhì)量上達(dá)到一個(gè)良好的平衡,并將其運(yùn)用到實(shí)時(shí)模擬當(dāng)中。
1 相關(guān)研究的分析
實(shí)時(shí)水面的渲染一直都是眾多學(xué)者研究的領(lǐng)域,并相繼提出了一些水面渲染的模型。Nick Foster[2]采用了Navier-Stokes方程對(duì)三維水面進(jìn)行渲染。Kei Nakano[3]成功地采用粒子系統(tǒng)對(duì)小范圍的水面進(jìn)行渲染。Jerry Tessendorf[1]通過快速傅里葉變換(FFT)和Pierson-Moscowitz譜模型產(chǎn)生高度場(chǎng),并利用該高度場(chǎng)對(duì)水面進(jìn)行模擬。這種方法具有很強(qiáng)的靈活性,并且由于它的數(shù)據(jù)基礎(chǔ)來自于海洋統(tǒng)計(jì)學(xué)模型,因此渲染出來的水面真實(shí)感較強(qiáng)。但是,該方法的缺點(diǎn)在于很難將其應(yīng)用到幀頻率要求較高的實(shí)時(shí)水面渲染中。原因在于,在每一幀中計(jì)算高度場(chǎng)耗時(shí)巨大,并且隨著水面高度的變化,還應(yīng)根據(jù)高度場(chǎng)重新計(jì)算水面每個(gè)頂點(diǎn)的法向量的改變以求達(dá)到較為真實(shí)的水面光照效果。 Vladimir Belyaev[4]對(duì)Jerry Tessendorf[1]中的方法進(jìn)行優(yōu)化,在水面網(wǎng)格中引入了層次細(xì)節(jié)(levels of detail),這大大降低了遠(yuǎn)處場(chǎng)景的相關(guān)計(jì)算,但是在實(shí)時(shí)渲染中仍然不能具有良好的交互性。本文對(duì)文獻(xiàn)[1,4]中所提出的方法進(jìn)行了進(jìn)一步的優(yōu)化,并不實(shí)時(shí)計(jì)算水面高度場(chǎng),而是采用多張事先手工繪制的高度圖,通過與時(shí)間相關(guān)聯(lián)的融合系數(shù)對(duì)這些高度圖進(jìn)行疊加。這充分利用了圖形顯卡的特性,大大地提高了渲染效率。另外,將水面上和水面下的景物分別繪制成紋理,并結(jié)合環(huán)境紋理映射技術(shù)和二維紋理映射技術(shù)從而實(shí)現(xiàn)水面上光線反射、折射和菲涅爾等光照效果,大大增強(qiáng)了水面渲染的真實(shí)感。
2 水面模型分析
對(duì)于水的模擬來說,最具有真實(shí)感是那些基于流體動(dòng)力學(xué)和快速傅里葉變換(FFT)發(fā)展而來的模型。這些模型提供了非常真實(shí)的渲染結(jié)果,但不幸的是它們需要相當(dāng)大的數(shù)學(xué)計(jì)算,使它們不適用于交互式的應(yīng)用程序。當(dāng)前大部分游戲均采用非常簡(jiǎn)單的水面模型,其中的大部分都是用法向映射(normal maps)來產(chǎn)生視覺細(xì)節(jié)。但是,這個(gè)方法不能提供足夠的真實(shí)感,也不能真實(shí)地表現(xiàn)水面上產(chǎn)生的波浪。本文所采用的技術(shù)結(jié)合了上面兩種方法的優(yōu)點(diǎn),使其既具有法向映射的速度又具有FFT方法的視覺真實(shí)感。
2.1 高度場(chǎng)的產(chǎn)生
本文中所采用的高度場(chǎng)是通過一些重疊的高度圖來產(chǎn)生的。這些高度圖是事先通過手工制作并保存下來。其中,每一張高度圖在時(shí)間和空間上是彼此分離的。將這些高度圖紋理疊加在一起就形成了水面的高度場(chǎng)。其中,每一個(gè)紋元就代表了對(duì)應(yīng)點(diǎn)的高度值。
在疊加這些高度圖時(shí)使用不同的縮放系數(shù)。同時(shí),將時(shí)間作為一個(gè)自變量引入進(jìn)來,這樣就可以獲得復(fù)雜的水面波動(dòng)效果。表達(dá)式為
H(x,y,t)=∑Ni=0b(Axix+BxiAyix+Byi,Atit+Btt)
其中:x和y是水平面的空間坐標(biāo);t表示時(shí)間;N是高度圖的數(shù)量。對(duì)于參數(shù)Ai和Bi通過實(shí)驗(yàn)仔細(xì)選擇以避免水面波動(dòng)明顯的周期性。
2.2 采樣高度場(chǎng)
要想渲染出不斷波動(dòng)的水面,除了具有表示高度場(chǎng)的紋理外,還需要對(duì)此紋理進(jìn)行采樣,以確定水面各頂點(diǎn)的高度值。本文借鑒了LOD的思想并對(duì)其進(jìn)行了精心的簡(jiǎn)化,大大減少了對(duì)計(jì)算量的要求。筆者采用的是放射狀的柵格(圖1),它的中心位于相機(jī)所在的位置。
這樣的柵格可以在靠近觀察點(diǎn)處采樣頻率更高,能提供較高的細(xì)節(jié),而遠(yuǎn)處采樣頻率較低節(jié)省了計(jì)算的開銷。下面的方程式展現(xiàn)了如何計(jì)算放射狀柵格的頂點(diǎn)位置。
r=a0+a1i4;xi,j=r cos(2πj/M);yi,j=r sin(2πj/M)
其中:i代表同心圓的編號(hào),它的取值為0~N-1;j代表在一個(gè)圓上的采樣點(diǎn)編號(hào),它的取值0~M-1;N和M都是選定的常數(shù)。最小圓的半徑r0=a0,而最大圓的半徑rN-1=a0+a1(N-1)4。其中,a0和a1也是選定的常數(shù)。
3 水面光照分析
水面環(huán)境主要是由水面、大氣、光照和水面下的水體這四個(gè)部分組成。其中,水面上的光照是影響水面特征最為重要的因素。通常,水面上的任何一點(diǎn)的光照強(qiáng)度由三部分構(gòu)成:太陽光、環(huán)境光和來自于水面下的透射光。筆者認(rèn)為在水面上主要發(fā)生的光照現(xiàn)象是光線的折射和反射,當(dāng)然,水體自身也存在對(duì)光線散射和吸收的作用。正是由于光線在水面上會(huì)發(fā)生反射和折射,水面才會(huì)出現(xiàn)水面以上景物倒影和水面以下物體影像相互重合的現(xiàn)象。在這里,出于對(duì)問題簡(jiǎn)化的考慮,筆者只考慮光線折射和反射對(duì)水面的影響,而水體的自身作用暫時(shí)不進(jìn)行計(jì)算。因此,水面的顏色可用下面的表達(dá)式進(jìn)行描述。
Cwater=FCreflect+(1-F)Crefract
其中:F是菲涅爾系數(shù)。菲涅爾系數(shù)采用統(tǒng)計(jì)學(xué)的觀點(diǎn)描述了光子從一種傳播介質(zhì)到達(dá)另一種傳播介質(zhì)的表面上時(shí),發(fā)生反射和折射的概率。菲涅爾系數(shù)可采用下式進(jìn)行計(jì)算:
F=(g-k)2/2(g+k)2(1+(k(g+k)-1)2/(k(g-k)+1)2)
k=cos α;g=na/nb+k2-1
其中:na和nb分別是空氣和水的折射率,可以將其值近似地取為1.333;α是入射光線和表面法向量之間的夾角。由此可見,菲涅爾系數(shù)的變化完全取決于k的變化,當(dāng)表面法向量不斷變化時(shí)(水面不斷波動(dòng)時(shí)),菲涅爾系數(shù)就頻繁變化,從而導(dǎo)致水面顏色的變化。
3.1 光的反射
當(dāng)前的圖形加速硬件都支持立方體紋理映射,可以使用六張紋理構(gòu)成一個(gè)環(huán)境紋理盒來模擬水面所在空間四周的環(huán)境(圖2)。如果視線方向?yàn)楠獷,水面的法向量是N,則反射光線為R=E-2(E×N)N(圖3),它與環(huán)境紋理的交點(diǎn)顏色,就是沿E方向所看到的水面環(huán)境反射顏色(Cenv)。除了考慮環(huán)境反射顏色之外,筆者通常還要考慮太陽光在水面上所形成的波光粼粼的效果(Cspecular)。因此,將上面兩種因素結(jié)合在一起就可以得到下面的表達(dá)式:Creflect=Cenv+Cspecular。
3.2 光的折射
光線在水面發(fā)生反射的同時(shí)也發(fā)生了折射。對(duì)于特定的視向量E,折射光線的方向可以通過Snell定律來進(jìn)行計(jì)算,公式如下:ηi sin(θi)=ηt sin(θt)。其中:ηi和ηt分別是空氣與水面的光線折射率;而θi和θt是光線的入射角和光線的折射角。
折射光線的顏色同樣是由兩部分構(gòu)成,即水面下物體的顏色(CunderWater)和水體本身的顏色(CwaterVal)。因此,折射光線的顏色為Crefract=CwaterVol+CunderWater。水面下物體的顏色采用下面的公式計(jì)算而得CunderWater=Cobjecte-ks。其中:Cobject是水面下物體本身的顏色;k是水對(duì)光線的散射系數(shù);Sc是水面下物體到相機(jī)的距離。同時(shí),水體(CwaterVol)的顏色由多種因素決定。為了簡(jiǎn)化問題,將水體的顏色作為一種常數(shù)來進(jìn)行處理。因此,將水面考慮成為平面事先計(jì)算水面下物體顏色和水體顏色的組合將其保存在一張紋理圖。
3.3 菲涅爾系數(shù)
為了提高渲染效率減少計(jì)算量,筆者事先計(jì)算菲涅爾系數(shù),并將它保存在一張2D紋理中。假設(shè)水面當(dāng)前頂點(diǎn)的法向量與Z軸平行,2D紋理中保存了針對(duì)視向量所有可能入射角的菲涅爾系數(shù)值。紋元(s,t)對(duì)應(yīng)單位視向量:V=(s-0.5,t-0.5,1-(s-0.5)2+(t-0.5)2)的菲涅爾系數(shù),如圖4 所示。而圖5是最終的保存菲涅爾系數(shù)的2D紋理圖。
對(duì)于水面上的特定點(diǎn)N=(xn,yn,zn),可以計(jì)算此點(diǎn)的單位視向量V=(xV,yV,zV)。但是,此向量是在世界坐標(biāo)系下計(jì)算的,因此(xV,zV)不能直接作為紋理坐標(biāo)來進(jìn)行紋理映射。必須將單位視向量V變換到N點(diǎn)的局部坐標(biāo)下(N點(diǎn)的法向量與Z軸平行),再進(jìn)行紋理映射。
3.4 泡沫
當(dāng)風(fēng)浪足夠強(qiáng)時(shí),可以通過產(chǎn)生泡沫來提高真實(shí)感。筆者所采用的方法是對(duì)于高度超過H0的頂點(diǎn)使用一張預(yù)處理過的泡沫紋理進(jìn)行混合。根據(jù)以下公式來計(jì)算泡沫的透明度:Foam.a=saturate((H-H0)/(Hmax-H0))。其中:Hmax表示可能出現(xiàn)泡沫的最高位置;H0為基準(zhǔn)高度;H表示當(dāng)前高度。為了簡(jiǎn)化問題,本文所使用的泡沫紋理是手動(dòng)創(chuàng)建的。
4 優(yōu)化與實(shí)現(xiàn)
實(shí)時(shí)水面渲染最大的問題就是如何減少渲染過程中所需要的大量計(jì)算。在設(shè)計(jì)實(shí)現(xiàn)的過程中,要充分考慮如何簡(jiǎn)化一些對(duì)視覺效果影響不大的計(jì)算。筆者主要針對(duì)紋理采樣和頂點(diǎn)裁剪進(jìn)行優(yōu)化,以達(dá)到提高渲染效率的目的。
4.1 紋理采樣
本文采用的是頂點(diǎn)紋理技術(shù)。在渲染過程中需要從保存水面柵格各頂點(diǎn)高度的紋理中采樣與之對(duì)應(yīng)頂點(diǎn)的高度值。由于當(dāng)前的圖形硬件不支持直接對(duì)頂點(diǎn)紋理過濾。因此,必須在頂點(diǎn)片斷程序中手動(dòng)編寫紋理過濾代碼。常見的紋理過濾技術(shù)是雙線性過濾和三線性過濾,但是這兩種技術(shù)都存在為獲取一個(gè)像素信息須多次采樣的缺點(diǎn)。以雙線性紋理過濾為例,要采樣給定點(diǎn)的紋理值,就必須對(duì)該點(diǎn)周圍的四個(gè)紋元進(jìn)行采樣,并通過相應(yīng)的權(quán)值將這四點(diǎn)的值求平均,從而得到給定點(diǎn)的紋理值。如果所要渲染的水面區(qū)域較大,頂點(diǎn)數(shù)較多,則效率不高,不能獲得理想的效果。假設(shè)采用的是三線性過濾,所需的紋理拾取數(shù)還會(huì)翻倍,因?yàn)檫@需要在鄰近的mip層中進(jìn)行雙線性過濾并對(duì)結(jié)果進(jìn)行均值計(jì)算。
為了解決這一問題,本文將前期制作的水面高度場(chǎng)紋理進(jìn)行預(yù)處理。把每一張單通道的高度圖融合到一張四通道的紋理當(dāng)中,充分利用R、G、B、A,這樣采樣四通道紋理一次就能同時(shí)獲得目標(biāo)圖元四周的像素信息。這樣就大大降低了紋理采樣的總次數(shù)(采樣次數(shù)是沒有優(yōu)化情況下總次數(shù)的四分之一)。具體的處理方法如下:
a)將一幅高度場(chǎng)的單通道灰度圖讀入到顯存中;
b)逐像素地查找每一圖元上下左右四個(gè)圖元數(shù)據(jù),并進(jìn)行保存(如果是邊界圖元,就將該圖元數(shù)據(jù)保存四份作簡(jiǎn)化處理);
c)對(duì)所得到數(shù)據(jù)進(jìn)行像素?cái)?shù)據(jù)包裝,返回到b)繼續(xù)執(zhí)行;
d)渲染到紋理并保存為tga文件;
e)按上述方法依次處理所有四張單通道高度圖。
4.2 頂點(diǎn)裁剪
即使優(yōu)化了紋理采樣,渲染過程中紋理的采樣次數(shù)還是相對(duì)較高。本文采用的是大量三角面片來渲染水面,這樣一些三角形就會(huì)完全處于視域體以外。對(duì)于這些三角形,頂點(diǎn)程序同樣將會(huì)執(zhí)行,這浪費(fèi)了寶貴的計(jì)算資源。因此,在頂點(diǎn)片斷程序中應(yīng)該先裁剪掉位于視域體外的頂點(diǎn)。
頂點(diǎn)程序一次計(jì)算只能處理一個(gè)頂點(diǎn),所以不能記錄頂點(diǎn)間的拓?fù)湫畔ⅰR虼耍荒茉陧旤c(diǎn)層次作出優(yōu)化。如圖6所示。
在視景體投影區(qū)外側(cè),適當(dāng)添加一個(gè)安全區(qū)域。對(duì)于超出視景體,但又位于此安全區(qū)域內(nèi)的頂點(diǎn)并不將其裁剪掉。(如三角形1正下方兩個(gè)頂點(diǎn))這樣可以有效地避免裁剪掉一個(gè)三角形位于視景體外側(cè)的一部分頂點(diǎn)而帶來的邊界失真。下面是實(shí)現(xiàn)頂點(diǎn)裁剪的偽代碼。
//將輸入頂點(diǎn)INP坐標(biāo)轉(zhuǎn)換到視點(diǎn)坐標(biāo)中
//ModeViewProj當(dāng)前系統(tǒng)的空間變換矩陣
Float4 ClipPos=mul(ModeViewProj, INP);
Float3 check;
//判斷頂點(diǎn)是不是在安全區(qū)域的外側(cè)
check=abs(ClipPos.xyz)<(ClipPos.www*C0+C1);
If(all(check))
{
//頂點(diǎn)處于視域體內(nèi)要進(jìn)行處理
}
這里C0和C1是特殊的裁剪常量,控制了三角形的頂點(diǎn)延伸出攝像機(jī)視景體多少距離將會(huì)觸發(fā)裁剪,即控制圖中安全區(qū)域的大小。由于系統(tǒng)渲染的三角面片較小,因此安全區(qū)域只需比相機(jī)視景體投影區(qū)稍寬一點(diǎn)就可以大大降低對(duì)跨越視景體投影區(qū)域的三角面片頂點(diǎn)(如三角形2)進(jìn)行裁剪的概率,有效地避免了邊界失真。
4.3 實(shí)驗(yàn)結(jié)果
本文的實(shí)現(xiàn)平臺(tái)是普通PC機(jī)(CPU: P4 2.8 GHz,內(nèi)存:1 GB,顯卡:NV Quadro FX 3400/4400),并利用標(biāo)準(zhǔn)OpenGL圖形庫和CG著色器,在VC++.NET 2003集成開發(fā)環(huán)境下實(shí)現(xiàn)。首先,加載需要的各種紋理,再在頂點(diǎn)片斷程序中對(duì)高度場(chǎng)紋理采樣,并根據(jù)所得的高度數(shù)據(jù)進(jìn)行頂點(diǎn)坐標(biāo)變化。同時(shí),計(jì)算出泡沫紋理的透明度、菲涅爾紋理坐標(biāo)、折射紋理坐標(biāo)和反射紋理坐標(biāo)。最后,在像素片斷程序中根據(jù)前面所計(jì)算的紋理坐標(biāo)進(jìn)行混合。放射狀柵格的采樣數(shù)是影響實(shí)時(shí)渲染效率的主要因素,如果柵格分辨率較高,渲染逼真度較好,分辨率較低則會(huì)導(dǎo)致逼真度較差。通過多次實(shí)驗(yàn),筆者采用放射狀柵格的分辨率為512×348時(shí)畫面效果較好,圖7~9是實(shí)驗(yàn)過程中的三個(gè)屏幕截圖。同時(shí)通過實(shí)驗(yàn)數(shù)據(jù)的對(duì)比,可以證明對(duì)紋理采樣的優(yōu)化和頂點(diǎn)裁剪可以顯著地提高渲染效率,實(shí)驗(yàn)數(shù)據(jù)對(duì)比如表1所示。由表1可知,在沒有采用任何優(yōu)化技術(shù)的情況下,平均幀頻率在21.1 fps左右,渲染速率不是太理想,僅采用頂點(diǎn)裁剪技術(shù)將平均渲染速率提高到30 fps,而僅采用紋理采樣優(yōu)化可將渲染速率提高到38.5 fps,同時(shí)應(yīng)用兩種優(yōu)化技術(shù)平均渲染速率穩(wěn)定在45 fps左右。這樣的幀頻率能夠保證良好的實(shí)時(shí)交互性。
表1 實(shí)驗(yàn)數(shù)據(jù)對(duì)比表柵格分辨率頂點(diǎn)裁剪紋理采樣優(yōu)化幀頻率/fps512×348否否21.1512×348是否30512×348否是38.5512×348是是455 結(jié)束語
實(shí)時(shí)水面渲染是當(dāng)前比較受關(guān)注的一個(gè)研究領(lǐng)域。本文的水面渲染是從平衡實(shí)時(shí)性和逼真性的角度出發(fā),充分利用當(dāng)前圖形加速卡的一些新特性來實(shí)現(xiàn)。其算法思想簡(jiǎn)單,實(shí)驗(yàn)效果較為逼真,同時(shí)也達(dá)到了實(shí)時(shí)性的要求。
但仍然還存在一些需要在以后工作中不斷完善的地方。例如增加局部光照效果來模擬水面物體所形成的倒影以及影像之間的相互作用,以及考慮水面上漂浮的物體所形成的波紋和漣漪等來實(shí)現(xiàn)更加真實(shí)的模擬。
參考文獻(xiàn):
[1]邱捷, 陳雷霆. 基于物理模型的實(shí)時(shí)海面模擬[J]. 計(jì)算機(jī)與數(shù)學(xué)工程, 2006, 34(1): 4-7.
[2]FERNANDO R, KILGARD M.CG教程—可編程實(shí)時(shí)圖形權(quán)威指南[M].洪偉,劉亞妮,李騎,等譯.北京:人民郵電出版社,2004.
[3]吳恩華. 圖形處理器用于通用計(jì)算的技術(shù)、現(xiàn)狀以其挑戰(zhàn)[J].軟件學(xué)報(bào),2004,15(10):1493-1504.
[4]fOSTER N,METAXAS D.Realistic animation of liquids[J]. Gra-phical Models and Image Processing (S1077-3169), 1996, 58(5):471-483.
[5]NAKANO K.Water surface using particle system[EB/OL].[2002].http://graphics.sfc.keio.ac.jp/papers/2002a/nakano2002.pdf.
[6]Tessendorf.Simulating ocean water [EB/OL].[2001].http://homel.gte.net/tssndr/index.html.
[7]BELYAEV V.Real-time simulation of water surface[EB/OL].[2003].http://www.graphicon.ru/2003/Proceedings/Technical/paper316.pdf.
[8]JENSEN.Deep-water animation and rendering[EB/OL].[2001]. http://www.gamasutra.com/gdce/Jensen/Jensen_01.htm.
[9]MASTIN G A, WATTERGER P A, MAREDA J F. Fourier synthesis of ocean scenes[J]. IEEE CGA,March, 2001:16-23.
[10]PERMOZE S, ASHIKHMIN M. Rendering natural waves[J]. Computer Graphics Forum, 2001, 20(4):189-200.
[11]CABRAL B, OLANO M, NEMEC P. Reflection space and image-based rendering[C]//Proc of SIGGRAPH.1999:165-170.
[12]FOURNIER A, REEVES W T. A simple model of ocean waves[J]. Computer Graphics, 1986,20(4):75-84
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文