摘 要:屏幕空間環(huán)境光遮蔽(AO)算法是一種流行的全局光照技術,此類技術可用于輔助復雜3D流管場景的可視化,以便于更好地理解場景分布特點。對此提出一種屏幕空間各向異性AO方法來實現(xiàn)復雜三維流管場景可視化。其基本思想是利用三維流管的特性設計兩個各向異性濾波器,來指導計算流管場景AO時的屏幕空間采樣和空間復用步驟。具體而言,這種策略通過各向異性地生成垂直于流管方向的采樣點計算AO。該策略可以減少算法在獲取滿意渲染結果時所需的樣本數(shù)量。同時為了進一步提高算法性能,提出對鄰近像素的AO計算結果進行沿流管方向各向異性空間復用。實驗結果表明,該算法在渲染質量和性能上均優(yōu)于現(xiàn)有的屏幕空間AO算法方案。
關鍵詞:流管可視化; 環(huán)境光遮蔽; 各向異性; 全局光照; 屏幕空間
中圖分類號:TP391 文獻標志碼:A
文章編號:1001-3695(2024)10-041-3166-07
doi:10.19734/j.issn.1001-3695.2024.01.0012
Anisotropic screen-space ambient occlusion algorithm for 3Dstreamtubes visualization
Wang Anlan, Li Fangchuan, Zhang Yanci
(College of Computer Science, Sichuan University, Chengdu 610065, China)
Abstract:Screen-space ambient occlusion(AO) is a popular global illumination technique which can be used to achieve a better understanding of complex 3D streamtubes scenes. This paper proposed an anisotropic screen-space AO method to visua-lize complex 3D streamtubes. The basic idea is to utilize the characteristics of 3D streamtubes to design two anisotropic filters to guide screen-space sampling as well as spatial reusing. More specifically, this paper proposed to anisotropically generate samples perpendicular to the direction of streamtube to calculate AO. This mechanism can reduce the number of samples required to generate satisfactory results. In order to further improve the performance of the algorithm, this paper proposed to anisotropically reuse AO results from nearby pixels along the streamtube direction. The experimental results indicate that the proposed algorithm outperforms the existing solutions both in rendering quality and performance.
Key words:streamtubes visualization; ambient occlusion(AO); anisotropic; global illumination; screen-space methods
0 引言
流管是最常見的流場可視化方法之一[1~3],用于輔助對流場特性的快速理解。由于流場性質的復雜性,通常流場在經過流管可視化后得到的場景,會表現(xiàn)出極其復雜的空間堆疊情況,難以直接用于觀察理解。環(huán)境光遮蔽(ambient occlusion,AO)算法已被證明是一種有效提高流管場景可視化效果的方法。例如,Eichelbaum等人[4]提出了一種實時AO方法用于高質量的流管數(shù)據(jù)渲染用于輔助理解流管場景的幾何空間結構。Groβ等人[5]設計了一種基于GPU的光線投射AO方法以更好地理解復雜的流管數(shù)據(jù)。李家振等人[6]提出了一種動態(tài)低采樣AO的實時光線追蹤分子渲染方法,有助于研究人員觀察生物分子結構。
然而,由于流管場景空間中的流管互相堆疊、彼此遮擋嚴重,在對場景計算AO值生成遮擋效果時,如何在渲染質量和渲染性能之間取得良好的平衡,仍是一個具有挑戰(zhàn)性的問題。
在現(xiàn)有的屏幕空間AO算法中,基于水平角的AO方法[7,8]沿指定方向對深度緩沖進行采樣,以找到水平角度下的最大水平角,并根據(jù)此角度近似計算當前像素AO的值。這種計算方式雖然可以大幅提高渲染的效率,但僅使用單個可見表面深度來理解周圍空間的遮擋情況,會在AO計算上引入較大的誤差。隨機深度環(huán)境光遮蔽算法(SDAO)[9]則在深度圖以外,隨機記錄場景的多層深度數(shù)據(jù)。這樣的方式可以縮小基于水平角AO方法的計算誤差,但在獲得更好渲染質量的同時,在復雜流管場景中所需采樣點數(shù)量過多,可能會導致性能的損失。
針對上述問題,本文提出一種針對流管場景的屏幕空間各向異性AO算法。該方法基于兩個流管場景的重要事實:a)由于流管不會發(fā)生自相交,當前流管的大部分遮擋來源于其他流管;b)同一根流管上的臨近像素具有相似的遮擋關系?;谶@兩個事實,提出了以下兩個各向異性濾波器,來分別指導采樣和AO空間復用過程。第一個濾波器設計用于減少無效采樣點的數(shù)量,從而使本文方法在相同的采樣點數(shù)量下取得比其他AO方法更好的渲染結果;第二個濾波器實現(xiàn)了更適合流管場景的AO結果空間復用策略,在流管場景中可以取得良好的降噪效果。
1 相關工作
在三維場景可視化領域,全局光照技術是一種常用可視化方法[4,5,10]。然而,目前很少有相關方法能夠用于高質量流管可視化的實現(xiàn),尤其是在實時可視化領域。
1)全局光照中的光線追蹤算法
Gumhold[11]提出了一種基于GPU的高效橢球光線投射方法,該方法通過使用圖形處理單元(GPU)來加速橢球光線的計算和投射。類似地,Klein等人[12]使用離散粒子模式來實現(xiàn)高質量的流管可視化。該方法通過將光線投射與離散化粒子模擬相結合,實現(xiàn)了高效的可視化效果。Petrovic等人[13]在片段著色器中進行光線相交測試,以精確渲染管道交叉點。該方法通過在片段著色器中進行光線相交測試,可以準確地確定光線與管道交叉的位置,從而實現(xiàn)更真實的渲染效果。文獻[14,15]進行了獨立的研究,提出了一種用于圓柱體的高效四邊形廣告牌方法。該方法利用光線投射來實現(xiàn)工業(yè)結構的高質量可視化結果。通過將圓柱體表面分割為四邊形廣告牌,并使用光線投射來計算廣告牌的可見性,能夠實現(xiàn)高效且逼真的渲染效果。Kanzler等人[16]提出了一種基于GPU的優(yōu)化光線追蹤方法渲染管線。該方法通過將線段的位置離散化到體素邊界上,并將線數(shù)據(jù)編碼到體素網格中,實現(xiàn)了對管道的高效渲染。這個體素網格可以加速光線追蹤過程,并生成密度表示,從而實現(xiàn)可擴展的渲染效果,包括環(huán)境遮擋和軟陰影效果的實現(xiàn)。郭雨瀟等人[17]提出了一種基于卷積神經網絡的實時AO降噪算法,能對環(huán)境光遮蔽的去噪問題進行準確的處理,并對卷積網絡的改進在保持精度的條件下顯著提升性能。
2)屏幕空間的環(huán)境光遮蔽算法
與物理準確的光線追蹤方法相比,圖形學中的近似方法具有更高的性能,可以實時操作。這些方法通過簡化計算過程,以犧牲一些物理準確性為代價,從而實現(xiàn)了更高的計算效率。Luft等人[18]提出了一種通過對深度緩沖進行非銳化遮蔽來增強圖像的方法。盡管該方法并不能提供真實的環(huán)境光遮蔽效果,但它在增強空間感知方面具有顯著的效果。這種方法的出現(xiàn)影響了一系列技術的發(fā)展,統(tǒng)稱為屏幕空間環(huán)境光遮蔽(screen space ambient occlusion,SSAO)。文獻[19]采用了非銳化掩蔽和深度緩沖的稀疏采樣,以獲取場景中各點的可見性。該方法的計算依賴于屏幕空間數(shù)據(jù),通過對深度緩沖的處理,實現(xiàn)了一定程度上的環(huán)境光遮蔽效果。基于地平線的環(huán)境光遮蔽(horizon-based ambient occlusion,HBAO)[7]是在幾個方向上對深度緩沖進行采樣,以計算出假設所有方向都被遮蔽的地平線角度。隨后,該方法進行了擴展以改善處理薄遮擋物時的近似效果[8]。另一些方法通過深度剝離[20]或A緩沖[21,22]構建技術生成并保留從主攝像機視點的所有深度層次列表。這樣,所有層次都被記錄下來,并使用提供最大遮蔽效果的層次。為了提高傳統(tǒng)屏幕空間近似方法的準確性和空間穩(wěn)定性,隨機深度環(huán)境光遮蔽(stochastic-depth ambient occlusion,SDAO)[9]引入了隨機深度圖來有效收集深度緩沖中缺失的信息。通過這種方式,SDAO能夠提高環(huán)境光遮蔽的準確性,并保持空間上的穩(wěn)定性。郭雨瀟等人[23]還提出了單幀圖像下的神經網絡屏幕空間AO估計算法,該端到端的算法能直接從自然光照條件下場景的單張圖像中恢復每個點的AO結果。
3)可視化中的其他全局光照方法
Ruiz等人[24]使用遮擋(obscurance)概念來實現(xiàn)逼真的體積渲染。文獻[25,26]致力于為直接體繪制引入動態(tài)光照效果。該方法考慮了光照的變化,使得繪制的體積對象能夠根據(jù)光照條件的改變而產生動態(tài)的效果。這種動態(tài)光照的引入使得繪制的結果更加逼真和更具生動感。此外,Wyman等人[27]提出了一種基于預先計算的輻射傳遞全局光照方法,用于交互式等值面繪制。該方法通過預先計算光照的輻射傳遞,并將其應用于等值面的繪制過程中,實現(xiàn)了全局光照的效果。這種方法使得等值面的繪制能夠呈現(xiàn)出更加真實的光照和陰影效果,提高了可視化結果的質量。Melek等人[28]利用環(huán)境天窗和陰影來強調纖維顯微鏡圖像中的結構。通過在渲染過程中引入環(huán)境光和陰影效果,能夠突出顯示纖維顯微鏡圖像中的細微結構,使得觀察者能夠更好地理解和分析圖像中的細節(jié)。
2 問題分析與算法概述
屏幕空間AO算法[7~9,20]通常采用兩種策略來提高其性能。第一種策略以減少計算AO值時的采樣紋理查找操作開銷為目的,盡可能減少采樣點數(shù)量。然而,這種策略可能會在最終的渲染結果中引入噪聲。第二種策略通過有效地復用相鄰空間像素的AO值,以減少噪聲帶來的走樣問題。然而,更充分地獲取到場景的信息有利于屏幕空間AO算法對周圍空間遮擋情況的理解,可以有效改善上述兩種策略的性能。例如,在使用采樣深度圖之外,可以使用深度剝離方法[20]或隨機深度圖[9]來輔助理解場景的空間關系。
但是,現(xiàn)有的屏幕空間AO算法都沒有充分利用流管場景自身的特點來進行有針對性的改進。這些特點包括:
a)三維流管是具有幾何連續(xù)性且不會自相交的曲線。這一事實表明,在采樣計算流管s上qa點的AO值時,有效的遮擋信息應該來自于分布在附近的其他流管。如圖1(a)所示,均勻采樣可能會獲取無效的采樣信息,比如位于與pa相同的流管s上的q1和q2。圖中,有效和無效樣本分別以綠色和紅色著色(參見電子版中的圖)。圖(a)均勻采樣8個樣本,獲得3個有效樣本,圖(b)為本文的AS策略采樣6個樣本,獲得5個有效樣本。
b)位于同一根流管上的兩個相鄰像素,具有相似的遮擋關系。這表明,滿足此類條件的相鄰像素具有相似的AO值。如圖2所示,對于pa來說,位于同一根流管上的臨近點pb應該比臨近點pc具有更高AO結果的相似度,即使pc在屏幕空間距離上更接近pa。
這些特點對于計算流管場景中的AO值計算性能提升有重要意義,但是已有的屏幕空間AO算法卻沒有充分利用它們。本文方法旨在充分利用這些特點,并根據(jù)此設計新的策略和算法,以更加準確和高效地計算流管場景的環(huán)境光遮蔽信息。
基于上述發(fā)現(xiàn),本文提出以下兩種各向異性濾波器,以充分利用流管場景的特點,來提高AO算法的計算性能:
a)基于流管場景很少出現(xiàn)自遮擋的特性,本文提出了一種各向異性采樣(AS)策略,以減少無效采樣點的數(shù)量。如圖1(b)所示,本文使用橢圓形采樣模式為像素pa生成樣本,并將此采樣橢圓模式的短軸與s1的流管方向對齊。
b)為了提高從附近像素復用環(huán)境遮擋值的效率,本文提出了一種名為各向異性空間復用(ASR)的策略。如圖2所示,當為位于流管s1上的pa復用臨近像素的AO值時,本文定義一個橢圓形鄰域,其長軸與s1流管方向對齊。只有位于該鄰域內且位于s1上的像素參與pa的AO復用過程。
3 方法
3.1 算法流程
如圖3所示,本文算法可以分為三個階段,且所有的階段都是在GPU上實時執(zhí)行。
a)特征提取階段。S-1階段生成深度圖depth map(Do),并以SDAO算法同樣的方式生成隨機多層采樣深度圖stochastic depth map(Ds)。為了準確地提取流管場景的特征,本文同時在一個名為流管頂點圖streamtube V-buffer map(V)的緩沖區(qū)中,記錄了流管的ID信息Sp,以及流管投影在屏幕空間上的橫截面半徑尺寸Rs。另一個名為流場方向圖vector field direction map(F)的緩沖區(qū),則是用于記錄當前場景中每個像素點上的流管方向。
b)采樣階段。S-2 階段根據(jù)F為每一個像素點計算好適宜的采樣方向。接下來的 S-3 階段根據(jù)上一階段計算好的采樣方向各向異性地對Do和Ds采樣以計算AO值,并將計算結果寫入遮擋值中間結果圖intermediate occlusion map(Oi)。
c)空間復用階段。S-4 階段對每一個像素計算其復用范圍內對應像素的適宜復用權重。通過將V提供的信息應用到復用階段,S-5 階段在各向異性空間復用策略的指導下判斷復用像素的有效性,計算出當前像素在復用范圍內的加權平均AO值,并將其寫入AO結果圖AO result map(Or)中。
3.2 采樣
本文使用基于水平角的環(huán)境光遮蔽(horizon-based ambient occlusion)算法[8,9]的思想,來計算給定表面上點P處的AO結果:
AO=1-12π∫πθ=π(sin(h(θ))-sin(t(θ)))A(θ)dθ(1)
其中:θ是和觀察方向對齊的以球坐標系為極坐標系的方位角;h(θ)是帶符號的水平角;t(θ)是帶符號的表面切向量仰角。
線性衰減函數(shù)A(θ)=max(0,1-r(θ)/Rp),其中r(θ)是點P和當前采樣點在采樣方向上的水平距離;Rp為影響半徑,即當前像素的采樣半徑。
對于每個像素p,本文使用與SDAO算法相同的方式,通過蒙特卡羅方法生成采樣點,來采樣Do和Ds并對式(1)進行積分,將最終計算得到的結果作為AO值,記錄在Oi(p)中。通常需要大量的采樣點,才能精確地計算蒙特卡羅積分的近似值,這是造成AO算法性能瓶頸的主要原因。在確保渲染質量的同時,減少樣本數(shù)量對于提升算法性能非常關鍵。
為了實現(xiàn)這一目標,本文提出了一種采樣方向評估算法,將均勻采樣方向修改為各向異性方向。本文定義了一個橢圓形采樣模式區(qū)域,使此橢圓長軸與當前像素所在位置的流場方向F(p)垂直,以在長軸附近生成更多的采樣點。
本文更進一步發(fā)現(xiàn),隨著Rs的增加,屏幕上被流管占據(jù)的像素數(shù)量也隨之增加。因此,為了減少無效采樣點的數(shù)量,采樣方向應更多地集中在長軸上。這意味著在這樣的情況下,本文需要提高采樣區(qū)域橢圓的離心率。
基于上述分析,本文可以根據(jù)如下的計算方式調整橢圓的離心率e1,來為采樣區(qū)域生成合適的采樣模式:
e1(p)=c1Rs(p)(2)
其中:像素p對應的Rs值從圖V中采樣得到;c1是為了提高采樣效率而設置的常數(shù)。本文將離心率e(p)限制在0~1內,以確保數(shù)學上的正確性。
3.3 復用
為了有效地復用攜帶遮擋信息的采樣點,來獲得更好的蒙特卡羅估計值,本文注意到臨近的像素通常具有相似的空間分布關系,這意味著它們可能具有類似的遮擋情況。本文可以通過雙邊濾波器[29],來對給定的Oi計算一個更準確的Or,具體如下所示。
Or(p)=1n∑npi∈ΩOi(pi)Sr(Oi(pi)-Oi(p))GS(pi-p)(3)
其中:pi是在當前像素p周圍4×4正方形濾波核Ω內的臨近點像素;Sr為相似性函數(shù);Gs是屏幕空間距離相關的衰減函數(shù)。
如圖4(a)所示,本文發(fā)現(xiàn)通過簡單的雙邊濾波方法處理Or會導致邊緣模糊,這是由于未考慮復用像素所在的流管空間關系差異。為了解決此問題,本文進一步引入了一個權重函數(shù)W來考慮臨近像素之間的空間分布相似性:
Or(p)=1n∑npi∈ΩW(p,pi)Oi(pi)Sr(Oi(pi)-Oi(p))Gs(pi-p)(4)
其中:W(p,pi)可以定義為
W(p,pi)=1 if Sp(p)=Sp(pi)0otherwise(5)
相似性結果Sp通過對圖V采樣得到。
為了在此階段更多地復用同一根流管s上的臨近點像素,本文將正方形濾波核Ω替換為各向異性的橢圓濾波核Ω^,其中此濾波核的橢圓長軸與當前像素所在位置的流場方向F(p)對齊。定義當前濾波核橢圓模式離心率的基本思想是:隨著Rs的減少,被復用的像素應當更多的集中在長軸上。離心率e2的表達式為
e2(p)=c2Rs(p)(6)
建議將常數(shù)c2取值0.5~0.8, 同時,本文把e2(p)的值限制在0~1內。本文發(fā)現(xiàn)在大多數(shù)情況下,16個采樣點大小的濾波核Ω^可以獲得很好的效果。
如圖4(b)所示,使用固定權重的重復使用方法充分利用了附近像素中的復用樣本,可以有效避免邊界模糊。但同時本文也注意到,即使附近的像素與p在同一根流管上,它們之間的遮擋情況仍可能存在較大差異。
為了解決此問題以獲得更可靠的復用結果,本文進一步考慮流管的特性:空間分布更接近于當前像素流場投影方向的臨近像素點,具有與當前像素更高的遮擋相似程度。因此,本文提出了一種流場方向引導的加權方法,用一個新的各向異性權重函數(shù)來取代W。
基本思想是:具有更一致方向的附近像素應該被賦予更高的權重。各向異性權重函數(shù)表示為
W(p,pi)=
dot(np,npi)dot(F(p),F(xiàn)(pi)) if Sp(p)=Sp(pi)0otherwise(7)
其中:n為當前像素點p所處位置對應頂點的世界空間法線向量,當前像素p的流場方向從圖F中采樣獲得。
4 實驗結果與分析
本文的屏幕空間各向異性AO算法部署在PC端,使用的GPU為NVIDIA GeForce RTX 3070,使用的CPU為AMD Ryzen7 5800X CPU,以及16 GB大小的內存進行實驗。
為了保證實驗的公平性,本章節(jié)實驗的所有結果都在以上環(huán)境按1920×1080的分辨率渲染。在本實驗中一共使用了五種空間復雜度不同的流管場景來進行測試,分別是Steady Vortex[30]流管場景、Taylor-Green Vortex[31]流管場景、ABC Flow[32]流管場景,以及記錄煙霧數(shù)據(jù)的Smoke Plume[33]流管場景、分析風場數(shù)據(jù)的Tornado[34]流管場景、觀測洋流數(shù)據(jù)的Isotropic Forced Turbulence流管場景[35]。
4.1 環(huán)境光遮蔽渲染質量
第一個實驗是為了比較本文屏幕空間各向異性AO算法與其他主流屏幕空間AO算法在渲染質量上的整體差異。本文在五個不同的場景中分別使用16個采樣點的本文算法、16個采樣點的SDAO算法,以及256個采樣點的SDAO算法進行AO計算,并得出最后的渲染結果。同時,為了充分對比本文算法與其他屏幕空間算法的渲染質量差異,本文還將16個采樣點的HBAO算法以及16個采樣點的HBAO+算法[8],在同樣的五個場景中進行了計算,并給出最終的渲染結果。為了便于觀察以及評判渲染質量的高低,本文使用1 024個采樣點的SDAO算法的計算結果作為Ground Truth參考項。
根據(jù)圖5中展示的上述四種算法在不同流管場景中的渲染結果,本文可以發(fā)現(xiàn)以下這些事實:
a)HBAO算法以及HBAO+算法都不能給出一個令人滿意的渲染結果,因為這兩種算法都只使用了單層深度圖的信息來進行AO結果的計算。對于實驗所使用的復雜的流管場景,數(shù)量不高的采樣點以及單層深度圖能提供的場景信息,不足以幫助算法理解場景中的遮擋關系,從而導致了渲染質量的低下,同時還存在AO計算錯誤的情況。
b)SDAO算法在16個采樣點的情況下同樣存在大量噪聲。其主要原因在于,SDAO算法會在當前像素的同一根流管上進行采樣。在采樣點數(shù)量較低且場景復雜的情況下,SDAO算法在對遮擋沒有貢獻的無效區(qū)域耗費了大量的采樣點。采樣點的不充分利用導致了大量噪聲情況的產生。
c)當使用同樣數(shù)目的采樣點時(如本實驗使用的16個采樣點數(shù)目),本文算法在同等采樣點數(shù)目下的渲染結果比其余算法表現(xiàn)更好。這是因為本文算法充分利用了流管場景的空間分布特性,降低了無效采樣點的數(shù)量。對于復雜的流管場景,空間結構在較小范圍內也可能發(fā)生劇烈變化,通常需要更多數(shù)量的采樣點來充分獲取信息,但是為了維持一個可接受的效率,只能將采樣點數(shù)量控制在一個較小的數(shù)值。因為采樣信息的不足,當前像素在采樣點數(shù)量不足的情況下,會對遮擋情況作出錯誤的判斷,并且計算出錯誤的環(huán)境光遮蔽值,從而在最終的渲染結果中引入大量的噪聲。而本文算法對空間信息的充分利用提高了采樣點的有效性,從而可以使用同等數(shù)目的采樣點獲得一個更好的采樣結果。
d)在使用較少數(shù)量采樣點的情況下,本文算法使用16個采樣點獲得的渲染質量,SDAO算法需要花費至少256個采樣點才能夠達到同等渲染質量。同時在本文各向異性空間復用濾波器的指導下,使用針對流管場景設計的高效降噪算法進一步提升渲染質量,從而使本文的屏幕空間各向異性AO算法在較少采樣點下,獲得一個令人滿意的渲染質量。
4.2 環(huán)境光遮蔽渲染效率
第二個實驗是用于展示本文屏幕空間各向異性AO算法,相較于SDAO算法的性能優(yōu)勢。本文分別記錄了在五個空間復雜度不同的流管場景中,本文算法在16個采樣點下使用均勻采樣(US)以及各向異性采樣(AS),并使用各向異性空間復用(ASR)的時間開銷,以及SDAO算法在16個采樣點、256個采樣點、1 024個采樣點數(shù)量下的時間開銷(單位為ms)。根據(jù)表1中的數(shù)據(jù),可以發(fā)現(xiàn)如下結論:
a)在流管場景中,使用本文提出的各向異性采樣策略進行采樣,可以獲得比普通均勻采樣更高的效率。由于使用本文各向異性采樣策略的采樣方法,在采樣過程中會獲得更少的無效采樣信息,更快速地采樣到有效的遮擋信息,可以避免后續(xù)大量的無效遮擋計算。從而可以使效率在一定程度上得到提升。
b)在同樣使用16個采樣點時,本文的屏幕空間各向異性算法(包括各向異性采樣濾波器指導的采樣階段,以及各向異性復用濾波器指導的空間復用階段)的整體效率會略低于SDAO算法。因為后續(xù)針對流管場景的降噪方案會帶來額外的時間開銷。但是,就如圖5中所展示的一樣,由于降噪階段對結果的有效處理,本文算法可以在獲得比256個采樣點的SDAO算法更高的渲染質量的同時,獲得比SDAO算法更高的渲染效率。
4.3 各向異性采樣算法有效性
第三個實驗是用于證明本文的各向異性采樣策略在各向異性濾波器的指導下,可以降低無效采樣點的數(shù)量。本文分別使用均勻采樣的本文算法、各向異性采樣的本文算法,
來計算同一場景的AO結果,并調整采樣點數(shù)量使它們都可以獲得同等令人滿意的渲染質量,并分別記錄兩種方式所需要的采樣點數(shù)量。
如圖6所示,其中藍到紅表示在采樣階段所需樣本數(shù)量從低到高的變化。與均勻采樣的方式相比,本文的各向異性采樣方法在獲得同等令人滿意的渲染結果時,需要較少的采樣數(shù)量。這表明本文方法在各向異性采樣濾波器的指導下成功地減少了無效采樣的數(shù)量。尤其在具有復雜空間遮擋關系但分布又存在明顯規(guī)律的區(qū)域(在圖6(a)中表現(xiàn)為紅色的部分),采用本文針對流管的各向異性采樣策略,能夠在采樣這類區(qū)域時,更顯著地降低無效采樣點的數(shù)量。
4.4 各向異性空間復用算法有效性
第四個實驗是用于證明本文的各向異性空間復用算法在各向異性復用濾波器的指導下,可以有效解決噪聲帶來的走樣問題,同時保持對流管場景幾何結構邊緣的清晰表達。本文分別使用高斯濾波算法、雙邊濾波算法,以及本文各向異性空間復用策略的降噪算法,來對相同的流管場景采樣結果進行降噪處理,如圖7所示。
圖7(b)展示了使用高斯濾波對圖7(a)進行處理獲得的降噪結果。從細節(jié)圖中可以注意到,雖然噪聲情況得到了有效處理,但是同時流管的邊緣也變得模糊,無法展示清晰的空間結構。這是因為當獲得一個平滑的降噪結果時,所需要的濾波大小超過了流管在屏幕空間上的占比大小,從而導致高斯濾波算法在對當前像素進行處理時,過多地將周圍不同流管的采樣結果納入了考慮。只有對與當前像素遮擋關系相似的周圍像素采樣結果進行復用時,才可以獲得有效的空間復用結果。
如圖7(c)所示,雙邊濾波方法雖然可以一定程度上保持邊緣處的邊界清晰度,但是僅從采樣結果的相似程度來判斷邊界,對于像流管這樣的空間結構復雜的場景,濾波結果仍然存在較大的誤差。
如圖7(d)所示,本文使用的各向異性復用策略更多地理解了流管場景的空間結構,利用流管分布情況,提高對當前像素與周圍像素遮擋關系相似度判斷的準確性。在判斷后,只將復用范圍內高相似度的有效相似采樣結果進行復用,從而獲得噪聲平滑且空間結構清晰的空間復用結果。
4.5 本文算法性能分析
最后一個實驗旨在分析本文方法中每個階段的具體性能表現(xiàn)。表2展示了本文算法中各個階段的時間開銷,主要包括各向異性采樣(AS)階段,以及各向異性空間復用階段(ASR)。
各向異性采樣階段的時間開銷主要來自對隨機深度圖進行采樣。盡管在各向異性采樣濾波器的指導下可以減少無效采樣點的數(shù)量,但根據(jù)足夠的采樣信息計算AO結果,仍然是不可避免的開銷。各向異性空間復用階段的成本,主要來源于搜索附近像素的AO結果所導致的頻繁的內存讀取。
由于本文算法的兩個階段執(zhí)行的都是屏幕空間算法,各向異性采樣階段和各向異性空間復用階段的時間開銷,主要受到流管場景占據(jù)的屏幕像素數(shù)量影響。在ABC Flow場景中,即使流管場景幾乎占據(jù)整個屏幕,本文算法在渲染性能和渲染質量方面仍然優(yōu)于使用256個采樣的SDAO算法。這說明本文算法在處理復雜的流管場景時,能夠在保證渲染質量的情況下適應高屏幕像素占用率的場景,同時具有出色的性能表現(xiàn)。
5 結束語
本文提出了一種各向異性屏幕空間環(huán)境光遮蔽算法,主要針對復雜的三維流管場景的可視化處理。為了減少屏幕空間遮蔽算法在獲得一個滿意的渲染質量時所需要的采樣點數(shù)量,本文針對三維流管的生長特性提出了一種各向異性采樣方式。同時,為了進一步提高算法在效率上的表現(xiàn),本文還根據(jù)三維流管的空間分布特性,提出對臨近點像素的環(huán)境光遮蔽結果進行各向異性空間復用。
本文算法中主要涉及到的關鍵參數(shù)為采樣方向數(shù)量與空間復用算法高斯核大小。在采樣點總數(shù)量一定的情況下,本文建議盡可能多地選取采樣方向,以充分發(fā)揮算法的各向異性采樣特性。如果條件允許,本文推薦設置采樣方向在4個及以上。本文不建議在空間復用階段使用過大的高斯核大小,選取較大的高斯核雖然對于平滑噪聲有著更好的作用,但由于納入了過多重復且無效的計算判斷,會在一定程度上影響各向異性空間復用算法的效率。根據(jù)實驗部分的數(shù)據(jù),本文推薦高斯核大小選取在16左右,從而可以在獲得一個較高渲染質量的前提下保持一個較好的渲染效率。
本文算法和其他屏幕空間水平角環(huán)境光遮蔽算法相同,為了避免產生帶狀噪聲走樣,在對每一個像素進行采樣的過程中,對每一個采樣點都在采樣步長上進行了輕微的抖動處理。由于此處使用抖動方式對隨機數(shù)的引入,導致算法的渲染結果在動態(tài)場景中可能會出現(xiàn)輕微的閃爍走樣。目前本文使用的解決方法是,在后處理階段引入類似于文獻[36]的時間相關的反走樣處理。在本文展示的效果中,此類方法有效地減緩了此類走樣所帶來的影響。但是,這并不是一個可以從根源上消除走樣產生的方式。對此,本文認為更為合理的解決方法是在進行空間復用的同時考慮時間相關的濾波處理。本文會在后續(xù)的工作中將這一點納入ASR策略的改進中。
同時,本文會繼續(xù)研究與AS策略共同作用的自適應采樣步長,來進一步減少所需的采樣點數(shù)量。為了更合理地制定自適應采樣步長策略,本文在未來將致力于引入更多流管場景的特點,從而在合理的位置放置采樣點。
參考文獻:
[1]Li Liya, Hsieh H H, Shen Hanwei. Illustrative streamline placement and visualization[C]//Proc of IEEE Pacific Visualization Sympo-sium. Piscataway,NJ:IEEE Press, 2008: 79-86.
[2]Li Liya, Shen Hanwei. Image-based streamline generation and rendering[J]. IEEE Trans on Visualization and Computer Graphics, 2007, 13(3): 630-640.
[3]Penney D, Chen Jia, Laidlaw D H. Effects of illumination, texture, and motion on task performance in 3D tensor-field streamtube visuali-zations[C]//Proc of IEEE Pacific Visualization Symposium. Piscata-way,NJ:IEEE Press, 2012: 97-104.
[4]Eichelbaum S, Hlawitschka M, Scheuermann G. LineAO—improved three-dimensional line rendering[J]. IEEE Trans on Visualization and Computer Graphics, 2012,19(3): 433-445.
[5]Groβ D, Gumhold S. Advanced rendering of line data with ambient occlusion and transparency[J]. IEEE Trans on Visualization and Computer Graphics, 2020, 27(2): 614-624.
[6]李家振, 紀慶革. 動態(tài)低采樣環(huán)境光遮蔽的實時光線追蹤分子渲染[J]. 計算機科學, 2022, 49(1): 175-180. (Li Jiazhen, Ji Qingge. Dynamic low-sampling ambient occlusion real-time ray tracing for molecular rendering[J]. Computer Science, 2022, 49(1): 175-180.)
[7]Bavoil L, Sainz M, Dimitrov R. Image-space horizon-based ambient occlusion[C]//Proc of ACM SIGGRAPH. New York: ACM Press, 2008.
[8]Tatarinov A, Panteleev A. Advanced ambient occlusion methods for modern games[R]. 2016.
[9]Vermeer J, Scandolo L, Eisemann E. Stochastic-depth ambient occ-lusion[C]//Proc of ACM on Computer Graphics and Interactive Techniques. New York:ACM Press, 2021: 1-15.
[10]McGraw T. High-quality real-time raycasting and raytracing of streamtubes with sparse voxel octrees[C]//Proc of IEEE Visualization Conference. Piscataway,NJ:IEEE Press, 2020: 21-25.
[11]Gumhold S. Splatting illuminated ellipsoids with depth correction[C]//Proc of VMV. 2003: 245-252.
[12]Klein T, Ertl T. Illustrating magnetic field lines using a discrete particle model[C]//Proc of VMV. 2004: 387-394.
[13]Petrovic V, Fallon J, Kuester F. Visualizing whole-brain DTI tracto-graphy with GPU-based tuboids and LoD management[J]. IEEE Trans on Visualization and Computer Graphics, 2007, 13(6): 1488-1495.
[14]Wu Zhaocong, Wang Nan, Shao Jie, et al. GPU ray casting method for visualizing 3D pipelines in a virtual globe[J]. International Journal of Digital Earth, 2019, 12(4): 428-441.
[15]De Toledo R, Lévy B. Visualization of industrial structures with implicit GPU primitives[C]//Proc of International Symposium on Visual Computing. Berlin: Springer, 2008: 139-150.
[16]Kanzler M, Rautenhaus M, Westermann R. A voxel-based rendering pipeline for large 3D line sets[J]. IEEE Trans on Visualization and Computer Graphics, 2018, 25(7): 2378-2391.
[17]郭雨瀟, 陳雷霆. 基于卷積神經網絡的實時環(huán)境光遮蔽計算[J]. 計算機應用研究, 2019, 36(6):1883-1886,1896. (Guo Yuxiao, Chen Leiting. Convolution neural network based real-time ambient occlusion computing[J]. Application Research of Computers, 2019, 36(6):1883-1886,1896.)
[18]Luft T, Colditz C, Deussen O. Image enhancement by unsharp mas-king the depth buffer[J]. ACM Trans on Graphics, 2006, 25(3): 1206-1213.
[19]Mittring M. Finding next gen: CryEngine 2[C]//Proc of ACM SIGGRAPH. New York:ACM Press,2007: 97-121.
[20]Bavoil L, Sainz M. Multi-layer dual-resolution screen-space ambient occlusion[C]//Proc of ACM SIGGRAPH. New York: ACM Press, 2009.
[21]Carpenter L. The A-buffer, an antialiased hidden surface method[C]//Proc of the 11th Annual Conference on Computer Graphics and Interactive Techniques. 1984: 103-108.
[22]Yang J C, Hensley J, Grün H, et al. Real-time concurrent linked list construction on the GPU[C]//Proc of Computer Graphics Forum. Oxford, UK: Blackwell Publishing Ltd., 2010: 1297-1304.
[23]郭雨瀟, 陳雷霆, 董悅. 單幀圖像下的環(huán)境光遮蔽估計[J]. 計算機研究與發(fā)展, 2019, 56(2): 385-393. (Guo Yuxiao, Chen Leiting, Dong Yue. Inferring ambient occlusion from a single image[J]. Journal of Computer Research and Development, 2019, 56(2): 385-393.)
[24]Ruiz M, Boada I, Viola I, et al. Obscurance-based volume rendering framework[C]//Proc of IEEE/EG Symposium on Volume and Point-Based Graphics. Piscataway,NJ:IEEE Press, 2008.
[25]Kronander J, Jonsson D, Low J, et al. Efficient visibility encoding for dynamic illumination in direct volume rendering[J]. IEEE Trans on Visualization and Computer Graphics, 2011, 18(3): 447-462.
[26]oltészová V, Patel D, Bruckner S, et al. A multidirectional occlusion shading model for direct volume rendering[C]//Proc of Compu-ter Graphics Forum. Oxford, UK: Blackwell Publishing Ltd,2010: 883-891.
[27]Wyman C, Parker S, Shirley P, et al. Interactive display of isosurfa-ces with global illumination[J]. IEEE Trans on Visualization and Computer Graphics, 2006, 12(2): 186-196.
[28]Melek Z, Mayerich D, Yuksel C, et al. Visualization of fibrous and thread-like data[J]. IEEE Trans on Visualization and Computer Graphics, 2006, 12(5): 1165-1172.
[29]Paris S, Kornprobst P, Tumblin J, et al. Bilateral filtering: theory and applications[J]. Foundations and Trends in Computer Graphics and Vision, 2009, 4(1): 1-73.
[30]Kamchatnov A. Topological solitons in magnetohydrodynamics[J]. Soviet Physics Uspekhi, 1982, 82: 117-124.
[31]Antuono M. Tri-periodic fully three-dimensional analytic solutions for the Navier-Stokes equations[J]. Journal of Fluid Mechanics, 2020, 890: A23.
[32]Barbato D, Berselli L C, Grisanti C R. Analytical and numerical results for the rational large eddy simulation model[J]. Journal of Mathematical Fluid Mechanics, 2007, 9: 44-74.
[33]Zehnder J, Narain R, Thomaszewski B. An advection-reflection solver for detail-preserving fluid simulation[J]. ACM Trans on Graphics, 2018, 37(4): 1-8.
[34]Tornado data set generator[EB/OL]. http://web.cse.ohio-state.edu/~crawfis.3/Data/Tornado/.
[35]Forced isotropic turbulence[EB/OL]. http://turbulence.pha.jhu.edu/For-ced_isotropic_turbulence.aspx.
[36]張軍, 朱彬. 大范圍云導風的直接可視化方法[J]. 計算機應用研究, 2021, 38(3): 908-913. (Zhang Jun, Zhu Bin. Direct vectors visualization method for large scale cloud-motion wind[J]. Application Research of Computers, 2021, 38(3): 908-913.)