周志強(qiáng) 吳桐 張嚴(yán)辭
摘 要:為了提升基于粒子的流體表面重建效率,提出了一種基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取方法。與基于物體空間的方法相比,該方案根據(jù)粒子密度、離散系數(shù)等信息自適應(yīng)提取視錐范圍內(nèi)最靠近視點(diǎn)的表面粒子,使表面粒子數(shù)、內(nèi)存消耗僅與可見(jiàn)的表面區(qū)域相關(guān),而不是整個(gè)流體表面或模擬域。此外,利用透視網(wǎng)格沿視線排布的優(yōu)勢(shì),提出了基于粒子密度的自適應(yīng)厚度估計(jì)方法。實(shí)驗(yàn)結(jié)果表明,該方案有效減少了40%~76%的表面粒子和30%~50%的內(nèi)存開(kāi)銷(xiāo),解決了表面粒子冗余和空洞問(wèn)題,并以較低的代價(jià)獲取了厚度信息。該方案為后續(xù)的表面重建和渲染帶來(lái)了明顯的性能提升,可以更好地處理大規(guī)模粒子集的重建和渲染。
關(guān)鍵詞:表面重建;表面粒子提?。煌敢暰W(wǎng)格;厚度;自適應(yīng);窄帶
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2023)10-042-3155-07
doi:10.19734/j.issn.1001-3695.2023.01.0022
Perspective-grid-based adaptive narrow-band surface particle extraction method
Zhou Zhiqianga,Wu Tonga,Zhang Yancia,b
(a.National Key Laboratory of Fundamental Science on Synthetic Vision,b.College of Computer Science,Sichuan University,Chengdu 610065,China)
Abstract:In order to improve the efficiency of particle-based fluid surface reconstruction,this paper proposed a perspective-grid-based adaptive narrow-band surface particle extraction method.Compared with the object-space-based method,this scheme adaptively extracted the surface particles closest to the viewpoint within the frustum according to the particle density,dispersion coefficient,so that the number of surface particles and memory consumption were related to the visible surface area,rather than the entire fluid surface or simulation domain.In addition,this paper presented an adaptive thickness estimation method based on particle density by taking advantage of the arrangement of perspective grids along the view.Experiments show that this scheme effectively reduces surface particles by 40% to 76% and memory overhead by 30% to 50%,solves the problems of surface particle redundancy and holes,and quickly obtains thickness information at a lower cost.This scheme brings significant performance improvement for surface reconstruction and rendering,and can better handle the surface reconstruction and rende-ring of large-scale particle sets.
Key words:surface reconstruction;surface particle extraction;perspective grid;thickness;adaptive;narrow band
0 引言
在流體模擬領(lǐng)域中,光滑粒子動(dòng)力學(xué)方法(smoothed particle hydrodynamics,SPH)[1~3]因具有較高的空間靈活性,在模擬流體流動(dòng)、動(dòng)態(tài)交互等方面得到了廣泛研究。然而,從非結(jié)構(gòu)化的粒子集中重建出高質(zhì)量流體表面仍然是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。
表面重建技術(shù)[4~13]已經(jīng)得到了廣泛研究。其中,屏幕空間方法只需重建離視點(diǎn)最近的一層表面, 因其效率在實(shí)時(shí)流體重建領(lǐng)域備受關(guān)注。然而,無(wú)論是基于濾波[4~7]還是基于光線步進(jìn)[10~13]的屏幕空間方法,都需要繪制大量的流體粒子,時(shí)間開(kāi)銷(xiāo)比較大。當(dāng)流體粒子規(guī)模較大時(shí),該類方法會(huì)遇到明顯的性能瓶頸。
實(shí)際上,只有位于流體表面的粒子對(duì)表面重建有幫助。許多研究人員提出了不同的方法來(lái)提取表面粒子,使表面重建的計(jì)算復(fù)雜度和內(nèi)存消耗僅與流體表面積成比例,而不是整個(gè)流體模擬域[14]。其研究方向主要分為邊緣檢測(cè)方案和窄帶方案兩類。在邊緣檢測(cè)方案[15~17]中,通常采用逐粒子鄰域搜索來(lái)提取表面粒子。在窄帶方案[7,14,18~21]中,常在物體空間中均勻劃分網(wǎng)格,以網(wǎng)格為粒度,將靠近流體表面的窄帶區(qū)域的粒子提取為表面粒子。
以上方法主要提取物體空間中位于整個(gè)流體表面的粒子,本文則提出了一種基于透視網(wǎng)格的提取方法,僅提取可見(jiàn)區(qū)域最靠近視點(diǎn)的表面粒子,以減少其數(shù)量和提升表面重建的效率。實(shí)際上,大量的粒子之間容易相互遮擋,只有少數(shù)最靠近視點(diǎn)的粒子對(duì)表面重建有貢獻(xiàn)[4~7,10~13]。若大部分不可見(jiàn)的粒子被輸入到表面重建中,會(huì)浪費(fèi)計(jì)算資源[14]。另外,原有窄帶方法僅僅依賴單元格與流體表面區(qū)域的距離來(lái)定義表面粒子,忽略了粒子的分布情況[18~21]。對(duì)于飛濺區(qū)域,由于粒子分布相對(duì)稀疏,相鄰粒子之間可能存在較大的間隙,導(dǎo)致重建的表面出現(xiàn)空洞。為此,本文提出了一種基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取方法,解決了上述表面粒子冗余和空洞問(wèn)題。該方法根據(jù)粒子數(shù)量、粒子渲染半徑以及反映粒子分布情況的離散系數(shù)自適應(yīng)提取可見(jiàn)區(qū)域最靠近視點(diǎn)的表面粒子。在粒子分布相對(duì)稀疏的區(qū)域提取到更多的表面粒子以避免空洞問(wèn)題的發(fā)生,同時(shí)有效減少了不可見(jiàn)區(qū)域的表面粒子數(shù)。
此外,受制有限的網(wǎng)格分辨率,當(dāng)以近乎平行流體邊界的角度觀察時(shí),前后位置相距較遠(yuǎn)的粒子很容易被劃分到沿該視線方向的單元格序列中。這會(huì)使表面粒子的提取因過(guò)早滿足條件而終止,導(dǎo)致許多靠后但可見(jiàn)的粒子被錯(cuò)誤識(shí)別為內(nèi)部粒子,引起流體邊緣出現(xiàn)空洞。為此,本文提出了基于鄰域的單元格分類算法,識(shí)別與視線方向相同的邊界單元格,并為其賦予更小的權(quán)重,以提取足夠多的表面粒子覆蓋邊界表面。
最后,現(xiàn)有屏幕空間方法通常光柵化所有粒子[4,6]或?qū)⑾噜彽牧W雍喜⒊筛蟮奶摂M粒子[7,10]以運(yùn)用Alpha混合操作獲取厚度,其優(yōu)勢(shì)在于實(shí)現(xiàn)簡(jiǎn)單。但Alpha混合操作需要頻繁的內(nèi)存讀寫(xiě),受粒子數(shù)目和大小影響,時(shí)間開(kāi)銷(xiāo)較大。為了提升厚度估計(jì)的時(shí)間效率,本文利用透視網(wǎng)格沿視線分布的特點(diǎn),設(shè)計(jì)了一種基于粒子密度的自適應(yīng)厚度估計(jì)方法,將其效率與粒子數(shù)目及大小解耦。該方法以透視網(wǎng)格為粒度,通過(guò)加權(quán)累計(jì)單元格的有效長(zhǎng)度來(lái)快速獲取厚度信息。
綜上所述,本文貢獻(xiàn)點(diǎn)主要包括:
a)提出一種基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取方法,提升了后續(xù)表面重建的效率和質(zhì)量。
b)基于上述方法,提出一種基于鄰域的單元格分類方法,以解決因透視網(wǎng)格分辨率不足而導(dǎo)致邊界產(chǎn)生空洞的問(wèn)題。
c)利用透視網(wǎng)格沿視線排布的優(yōu)勢(shì),提出一種基于粒子密度的自適應(yīng)厚度估計(jì)方法,提升了厚度估計(jì)的時(shí)間效率。
1 相關(guān)工作
準(zhǔn)確的表面粒子識(shí)別對(duì)提升表面重建效率和質(zhì)量起著關(guān)鍵作用。現(xiàn)有的表面粒子提取技術(shù)主要分為兩類:
a)邊界檢測(cè)法,通過(guò)逐粒子采樣相鄰粒子來(lái)識(shí)別單層的表面粒子。常見(jiàn)的方法有兩類:(a)密度場(chǎng)法,常通過(guò)加權(quán)相鄰粒子的密度信息來(lái)識(shí)別表面粒子,Hopp-Hirschler等人[16]通過(guò)逐粒子采樣相鄰粒子的密度和位置等信息的平滑色場(chǎng)法(smoothed color field,SCF)來(lái)識(shí)別表面粒子,然而該方法很難設(shè)置合適的全局閾值;(b)幾何方法,常利用粒子的幾何信息來(lái)識(shí)別表面粒子,Liu等人[17]通過(guò)判斷一個(gè)粒子是否完全被相鄰粒子所包圍來(lái)識(shí)別表面粒子。邊界檢測(cè)方法嚴(yán)重依賴于粒子的分布情況,對(duì)于劇烈波動(dòng)的流體區(qū)域,容易發(fā)生錯(cuò)誤的識(shí)別。
b)窄帶法,高質(zhì)量的表面重建需要部分內(nèi)部粒子的存在,以形成足夠健壯的表面區(qū)域?;谡瓗У奶崛》椒ǎ?8~21]通常以網(wǎng)格為粒度,而不是逐粒子進(jìn)行可見(jiàn)性測(cè)試,從而提升了整體性能。Akinci等人[18]將窄帶的思想引入表面提取中,只在流體表面附近的標(biāo)量場(chǎng)網(wǎng)格中執(zhí)行行進(jìn)立方體算法[22]。Wu等人[19]改進(jìn)了Akinci等人的方法,但仍然沒(méi)有完全并行化。Chen等人[21]只在外表面區(qū)域構(gòu)建標(biāo)量場(chǎng),并提出了一種檢測(cè)標(biāo)量場(chǎng)外表面頂點(diǎn)的方法來(lái)消除冗余的頂點(diǎn),從而顯著降低了計(jì)算復(fù)雜度和內(nèi)存消耗。Yang等人[14]設(shè)計(jì)了一種完全并行的窄帶方案,基于空間哈希網(wǎng)格的策略識(shí)別表面粒子,比SCF方法更精確和簡(jiǎn)單。Oliveira等人[7]利用分層鄰域法(layered neighborhood method,LNM)對(duì)流體不同區(qū)域進(jìn)行分層,并將靠近流體表面區(qū)域的多層網(wǎng)格中的粒子識(shí)別為表面粒子。
2 基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取方案
對(duì)基于屏幕空間的流體表面重建來(lái)說(shuō),只有處于視錐內(nèi)且最靠近視點(diǎn)的粒子有貢獻(xiàn)。在LNM方法[7]中,位于視錐之外、流體背部、相互遮擋的多層水等不可見(jiàn)區(qū)域的表面粒子冗余,如圖1(a)紅框區(qū)域所示。這些冗余的表面粒子占整個(gè)表面粒子集的大部分,限制了后續(xù)表面重建的性能。另外,如圖1(a)中紅色粒子所在的區(qū)域,由于粒子分布不均勻,尤其是在飛濺區(qū)域,僅僅依賴單元格與流體表面區(qū)域的距離來(lái)提取表面粒子,可能無(wú)法覆蓋表面,導(dǎo)致重建的表面出現(xiàn)空洞,影響表面質(zhì)量。
為了解決上述表面粒子冗余和空洞問(wèn)題,本文提出了一種基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取方法,根據(jù)粒子數(shù)量、粒子渲染半徑以及反映粒子分布情況的離散系數(shù)自適應(yīng)提取可見(jiàn)區(qū)域最靠近視點(diǎn)的表面粒子,如圖1(b)所示。累計(jì)量的好壞直接影響著提取的表面粒子數(shù)以及效率。如果定義的累計(jì)量合理,提取的表面粒子在足以覆蓋流體表面的前提下,不產(chǎn)生冗余;否則,可能因提取的表面粒子不足以覆蓋表面而產(chǎn)生空洞,或提取到大量冗余的表面粒子降低重建的效率。
2.1 透視映射
受紋理切片思想[23,24]的啟發(fā),本文引入了基于Tile的稀疏透視網(wǎng)格結(jié)構(gòu),視錐體被劃分為Dx×Dy×Dz個(gè)單元格,如圖2所示。其中,沿同一視線方向的單元格序列稱為同一Tile束,覆蓋Tx×Ty個(gè)像素。與通常在整個(gè)模擬域建立均勻網(wǎng)格相比,本文根據(jù)粒子集的AABB包圍盒范圍自適應(yīng)構(gòu)建透視網(wǎng)格,使其僅分布在視錐內(nèi)有粒子分布的區(qū)域,如圖2中的A2區(qū)域所示,減少了單元格的數(shù)量和內(nèi)存開(kāi)銷(xiāo)。
2.3 自適應(yīng)窄帶表面粒子提取
為了在飛濺區(qū)域提取到足夠多的粒子覆蓋表面,分層鄰域法[7]需要設(shè)置一個(gè)較大的全局閾值φmax,但這會(huì)導(dǎo)致大部分只需較小φmax的平緩區(qū)域,將大量?jī)?nèi)部粒子識(shí)別為窄帶表面粒子,降低了后續(xù)表面重建的效率,不能很好地支持流體飛濺的場(chǎng)景。
為此,本文提出了一種基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取算法,根據(jù)流體局部信息動(dòng)態(tài)調(diào)整不同區(qū)域的φmax,以減少平緩區(qū)域的窄帶表面粒子。由于透視網(wǎng)格在Z軸自適應(yīng)劃分單元格的深度范圍,其大小以及粒子數(shù)都會(huì)隨著視距的變化而變化,但兩者之間的比值卻比較穩(wěn)定。另外,粒子分布相對(duì)稀疏的區(qū)域相鄰粒子之間往往存在較大的間隙,少量的粒子不能有效覆蓋流體表面。為此,本文利用單元格的粒子密度ρ(cijk)和其粒子離散系數(shù)cv(cijk)定義遮擋分?jǐn)?shù)o(cijk),作為沿視線方向遍歷的累計(jì)量,如式(4)所示。
基于透視網(wǎng)格的窄帶表面粒子提取的2D效果如圖4所示。相比基于物體空間的分層鄰域法[7],該方法剔除了流體背部區(qū)域的冗余表面粒子。相比基于透視網(wǎng)格的分層方法(圖4(a)),該方法減少了平緩區(qū)域的窄帶表面粒子,如圖4(b)所示(φmax=2、δmin=3、omax=0.75)。
3 基于鄰域的單元格分類
當(dāng)斜掠流體邊界時(shí),2.3節(jié)提出的方法會(huì)引起邊界產(chǎn)生空洞以及非邊界表面提取大量冗余表面粒子等問(wèn)題,如圖5(a)所示。這主要是因?yàn)楫?dāng)視線平行流體邊界時(shí),位置相距較遠(yuǎn)的粒子很容易被劃分到同一Tile束中。這可能會(huì)使沿該方向的表面粒子提取過(guò)早終止,導(dǎo)致許多靠后的可見(jiàn)粒子被錯(cuò)誤地識(shí)別為內(nèi)部粒子,從而使重建的表面出現(xiàn)空洞,如圖5(a)中有紅色輪廓的灰色粒子(參見(jiàn)電子版)。
3.1 單元格分類
為了解決上述問(wèn)題,本文提出了一種基于鄰域信息的流體單元格分類方法,以識(shí)別與視線方向相同的邊界單元格。其基本思想為:如圖5(b)所示,對(duì)于與視線平行的流體邊界,可以通過(guò)在X、Y軸方向判斷其左右是否為空來(lái)識(shí)別;對(duì)于與視線垂直的流體表面,可以通過(guò)在Y、Z軸方向判斷其前后是否存在其他粒子來(lái)識(shí)別。具體地,本文采用式(9)定義單元格cijk的分類函數(shù)Euclid Math OneCAp(cijk)。
由于相鄰的單元格存在相同的鄰域單元格,若每個(gè)單元格都加載一遍鄰域單元格,可能導(dǎo)致大量的重復(fù)加載,嚴(yán)重影響單元格分類的效率。為此,本文設(shè)計(jì)了一種利用共享內(nèi)存機(jī)制加速單元格分類的策略。該策略的基本思想是:利用GPU共享內(nèi)存機(jī)制只對(duì)相同的鄰域單元格加載一次,暫存起來(lái)以供其他單元格的訪問(wèn),具體的流程如算法2所示。其中,重要部分加黑表示。
4 基于粒子密度的自適應(yīng)厚度估計(jì)
現(xiàn)有估計(jì)厚度的方法通常光柵化所有粒子[4,6]或用虛擬粒子[7,10]替代流體內(nèi)部單元格中的所有粒子以運(yùn)用Alpha混合操作獲取厚度,但Alpha混合操作需要頻繁地讀寫(xiě)內(nèi)存,時(shí)間開(kāi)銷(xiāo)較大。
為此,本文依賴2.1節(jié)的透視網(wǎng)格結(jié)構(gòu),設(shè)計(jì)了一種基于粒子密度的自適應(yīng)厚度估計(jì)方法,將其效率與粒子數(shù)目、大小解耦,通過(guò)加權(quán)累計(jì)單元格的有效長(zhǎng)度來(lái)快速獲取厚度信息。其基本思想為:利用透視網(wǎng)格沿視線排布的特點(diǎn),沿視線方向從前到后遍歷單元格并通過(guò)粒子密度累計(jì)其有效的長(zhǎng)度來(lái)估計(jì)每個(gè)Tile束的厚度,如圖6右側(cè)局部放大圖所示。單元格內(nèi)的粒子數(shù)越多,則該單元格的有效長(zhǎng)度越接近其實(shí)際長(zhǎng)度。每個(gè)Tile束的厚度Euclid Math OneTApij可以用式(11)表示。
具體的算法流程如算法4所示,重要部分加黑表示。
5 實(shí)驗(yàn)
為了保證實(shí)驗(yàn)的公平性,本文所有的實(shí)驗(yàn)均在NVIDIA GeForce RTX 3070 GPU的PC端進(jìn)行,屏幕分辨率為1920×1920。SPH粒子集由position based fluids(PBF)[27]方法產(chǎn)生,時(shí)間步長(zhǎng)為0.02 s,在不同場(chǎng)景中使用的均勻網(wǎng)格尺寸均為0.1。
由2.2節(jié)可知粒子的渲染半徑影響著其可見(jiàn)性以及時(shí)間開(kāi)銷(xiāo)。適合的渲染半徑會(huì)在表面質(zhì)量與時(shí)間效率之間建立平衡,使兩者均能滿足要求。在本文所有的實(shí)驗(yàn)場(chǎng)景中,當(dāng)渲染半徑R∈[0.05,0.1]時(shí),重建表面的質(zhì)量和時(shí)間開(kāi)銷(xiāo)均能很好地滿足要求。因此,為了簡(jiǎn)化粒子渲染半徑對(duì)實(shí)驗(yàn)的影響,本文設(shè)置R=0.06。
5.1 表面重建效率
為了驗(yàn)證本文方法可以有效提升表面重建的效率,對(duì)比SCF[16]、LNM[7]、經(jīng)背部剔除等優(yōu)化的LNM+,分別在燈塔、雙潰壩、水立方、海浪等模擬場(chǎng)景中進(jìn)行表面粒子提取和表面重建。本文統(tǒng)計(jì)了四種方法在不同場(chǎng)景提取的表面粒子數(shù)、平均時(shí)間開(kāi)銷(xiāo)、平均內(nèi)存開(kāi)銷(xiāo)、Mc值,用來(lái)評(píng)估方法的效率(分析如表1所示)。其中,以完整粒子集重建的表面作為參考。
1)表面粒子數(shù)
由圖7表面粒子數(shù)可視化結(jié)果可知,本文方法在不同場(chǎng)景中提取的表面粒子數(shù)均少于其他方法,其下降幅度與場(chǎng)景深度復(fù)雜度(由深度值的均方差σ量化)相關(guān)。如果場(chǎng)景中許多粒子被遮擋,下降幅度就會(huì)明顯,如海浪場(chǎng)景(σ=27.3),分別減少了24.51%、51.10%、39.91%。在大多數(shù)粒子被遮擋的極端視角下,表面粒子減少得就會(huì)更明顯,如雙潰壩場(chǎng)景(σ=41.8),分別減少了70.64%、75.88%、55.27%。而在深度復(fù)雜度較低的水立方場(chǎng)景(σ=5.2),則分別減少了44.50%、51.72%、8.29%。
值得注意的是,在飛濺場(chǎng)景中,LNM、LNM+等方法為了提取足夠多的粒子覆蓋飛濺區(qū)域的表面,需要設(shè)置一個(gè)較大的全局閾值φmax,但這會(huì)導(dǎo)致平緩區(qū)域?qū)⒋罅績(jī)?nèi)部粒子識(shí)別為表面粒子。如在海浪場(chǎng)景中,LNM、LNM+分別比SCF方法多提取了54.39%、25.63%,而本文方法則比SCF方法少提取了24.51%。這是因?yàn)楸疚姆椒ㄔ谟行Э紤]粒子密度的同時(shí),結(jié)合了單元格內(nèi)的粒子分布信息,得以自適應(yīng)調(diào)整不同區(qū)域的φmax,有效減少了平緩區(qū)域的表面粒子。
2)時(shí)間開(kāi)銷(xiāo)、內(nèi)存開(kāi)銷(xiāo)
由表1的平均時(shí)間開(kāi)銷(xiāo)列數(shù)據(jù)可知,光柵化獲取深度圖和表面粒子的提取在總耗時(shí)的占比最高,以本文方法為例,平均為58.72%、26.43%。由表1的深度圖列數(shù)據(jù)可知,渲染深度圖的時(shí)間開(kāi)銷(xiāo)與表面粒子數(shù)成正比。由于本文方法僅提取最靠近視點(diǎn)的一層粒子,表面粒子數(shù)最少,所以時(shí)間開(kāi)銷(xiāo)最少,比其他方法節(jié)省了至少45%的時(shí)間成本。而SCF方法由于在提取過(guò)程中需要逐粒子鄰域搜索,算法效率最慢。LNM+方法需要計(jì)算單元格內(nèi)粒子的向外法向量進(jìn)行背部剔除優(yōu)化,額外增加了時(shí)間開(kāi)銷(xiāo)。
由表1的平均內(nèi)存開(kāi)銷(xiāo)列數(shù)據(jù)可知,相比基于物體空間的表面粒子提取方法,本文方法的內(nèi)存開(kāi)銷(xiāo)節(jié)省了30%~50%。這是因?yàn)楸疚母鶕?jù)粒子集的AABB包圍盒自適應(yīng)構(gòu)建透視網(wǎng)格,使其僅分布在視錐內(nèi)有粒子分布的區(qū)域,而不是整個(gè)模擬域。
3)Mc值
Mc為由準(zhǔn)確率和假陽(yáng)率混合的綜合指標(biāo),用于評(píng)估不同提取方法的效率差異,如式(13)所示。
其中:準(zhǔn)確率(TPR)反映了提取表面粒子的精度;假陽(yáng)率(FPR)反映了內(nèi)部粒子被錯(cuò)誤識(shí)別為表面粒子的程度。
在Mc值上,本文方法在不同場(chǎng)景中均高于另外四種方法,接近于0.9。這是因?yàn)楸疚姆椒▋H提取最靠近視點(diǎn)的一層表面粒子,剔除了視錐之外、流體背部、相互遮擋的多層水等不可見(jiàn)區(qū)域的冗余表面粒子,更接近理想的可見(jiàn)表面粒子集SV(通過(guò)將粒子ID輸出到屏幕上,逐像素遍歷可得最靠前的一層可見(jiàn)表面粒子)。
5.2 重建質(zhì)量
為了驗(yàn)證表面重建質(zhì)量,本實(shí)驗(yàn)在海浪場(chǎng)景分別采用本文方法、SCF、LNM、LNM+等方法進(jìn)行表面粒子的提取和重建。如圖8所示,在飛濺區(qū)域,除了本文方法,其余方法重建的表面均出現(xiàn)了空洞或凹陷。這些問(wèn)題源于SCF、LNM、LNM+等方法不考慮粒子渲染半徑的影響,忽略了位于粒子分布相對(duì)稀疏區(qū)域的相鄰粒子之間往往存在較大的間隙,僅依賴核半徑[15~17]或單元格與流體表面區(qū)域的距離來(lái)定義表面粒子[7,21]的可見(jiàn)性。而本文方法同時(shí)考慮了粒子數(shù)量、粒子分布、粒子渲染半徑等信息,在粒子分布相對(duì)稀疏的區(qū)域提取更多的粒子以避免空洞的產(chǎn)生??梢悦黠@看出,本方法修復(fù)了其余方法存在的空洞或凹陷等問(wèn)題,有效提升了重建的表面質(zhì)量。
5.3 單元格分類有效性
為了驗(yàn)證本文單元格分類方法的有效性,本文對(duì)有無(wú)單元格分類的提取和重建效果進(jìn)行了比較。從圖9可以明顯看出,當(dāng)緊貼著海浪場(chǎng)景的流體邊緣觀察時(shí),結(jié)合單元格分類的本文方法消除了邊界的空洞(黃線框區(qū)域)。這主要是因?yàn)楸疚姆椒▽?duì)單元格分類后,對(duì)位于流體邊界的單元格賦予更小的權(quán)重,以提取到完整的邊界粒子;而賦予其余單元格更大的權(quán)重,以在其余非邊界的表面提取到更少的表面粒子,如圖9(c)中的紅線框區(qū)域。與無(wú)單元格分類相比,本場(chǎng)景視角下在結(jié)合單元格分類后表面粒子數(shù)減少了32.45%。
5.4 厚度估計(jì)效率
為了驗(yàn)證基于粒子密度的自適應(yīng)厚度估計(jì)算法的高效性,本實(shí)驗(yàn)對(duì)比了本文加權(quán)累計(jì)方法、Truong等人[4]、Oliveira等人[7]的厚度估計(jì)方法在雙潰壩場(chǎng)景第40幀、第120幀、第200幀、第280幀的時(shí)間開(kāi)銷(xiāo)和渲染結(jié)果。從圖10在雙潰壩場(chǎng)景下厚度估計(jì)的時(shí)間開(kāi)銷(xiāo)可以明顯看出,在渲染質(zhì)量上,與文獻(xiàn)[4,7]的方法相比,本文方法幾乎沒(méi)有明顯差別。在時(shí)間消耗上,本文方法耗時(shí)幾乎可以忽略不計(jì)(0.03~0.04 ms)。如第4章分析,本文方法將厚度估計(jì)的效率與粒子數(shù)目、大小解耦,利用透視網(wǎng)格沿視線排布的優(yōu)勢(shì),以單元格為粒度,直接通過(guò)粒子密度來(lái)加權(quán)累計(jì)單元格的有效長(zhǎng)度估計(jì)流體厚度。由于該過(guò)程與本文表面粒子的提取均需要從前往后遍歷單元格,本文將兩者放在同一pass進(jìn)行,進(jìn)一步提高了時(shí)間效率。
另外,由于透視網(wǎng)格分辨率遠(yuǎn)小于全分辨率,如果直接采樣低分辨率的厚度圖,會(huì)引入嚴(yán)重的塊狀偽影。為了消除偽影,本文使用平滑半徑較小的雙邊過(guò)濾器(5×5)[28]對(duì)厚度圖進(jìn)行平滑,這會(huì)增加較小的性能開(kāi)銷(xiāo),但可以消除大部分偽影。
6 結(jié)束語(yǔ)
本文提出了基于透視網(wǎng)格的自適應(yīng)窄帶表面粒子提取和厚度估計(jì)方案,根據(jù)單元格的粒子密度和離散系數(shù)自適應(yīng)提取最靠近視點(diǎn)的粒子,有效提高了表面重建的效率,且利用透視網(wǎng)格沿視線排布的優(yōu)勢(shì),加權(quán)累計(jì)單元格的有效長(zhǎng)度,快速估計(jì)流體的厚度。與以前的方法相比,本文方案顯著降低了計(jì)算復(fù)雜度和內(nèi)存消耗,為后續(xù)的表面重建帶來(lái)了很大的性能提升,可以很好地處理大規(guī)模粒子的渲染。
本文方案也存在一些不足。如第4章所述,因忽略粒子對(duì)周?chē)鷨卧竦挠绊?,?dǎo)致視點(diǎn)靠近流體時(shí)表面粒子增多,算法效率下降。未來(lái)將參照文獻(xiàn)[24]中的方法將粒子的貢獻(xiàn)擴(kuò)散到周?chē)?,進(jìn)一步提升表面重建的效率。
參考文獻(xiàn):
[1]李泓澍.基于自適應(yīng)光滑長(zhǎng)度的 SPH 流體模擬方法[D].廣州:廣東工業(yè)大學(xué),2020.(Li Hongshu.SPH fluid simulation method based on adaptive smooth length[D].Guangzhou:Guangdong University of Technology,2020.)
[2]劉樹(shù)森,何小偉,王文成,等.光滑粒子流體動(dòng)力學(xué)(SPH) 流體仿真技術(shù)綜述[J/OL].軟件學(xué)報(bào).(2023-04-21).https://doi.org/10.13328/j.cnki.jos.006777.(Liu Shusen,He Xiaowei,Wang Wencheng,et al.Review of fluid simulation techniques for smooth particle fluid dynamics(SPH)[J/OL].Journal of Software.(2023-04-21).https://doi.org/10.13328/j.cnki.jos.006777.)
[3]Khayyer A,Shimizu Y,Gotoh T,et al.Enhanced resolution of the continuity equation in explicit weakly compressible SPH simulations of incompressible free-surface fluid flows[J].Applied Mathematical Modelling,2023,116:84-121.
[4]Truong N,Yuksel C.A narrow-range filter for screen-space fluid rendering[C]//Proc of ACM on Computer Graphics and Interactive Techniques.New York:ACM Press,2018:1-15.
[5]楊欣.基于曲率流的屏幕空間流體渲染[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2018(8):94-98,105.(Yang Xin.Screen space fluid bleaching based on curvature flow[J].Modern Computer:Professional Edition,2018(8):94-98,105.)
[6]Xu Yanrui,Xu Yuanmu,Xiong Yuege,et al.Anisotropic screen space rendering for particle-based fluid simulation[J].Computers & Graphics,2023,110:118-124.
[7]Oliveira F,Paiva A.Narrow-band screen-space fluid rendering[J].Computer Graphics Forum,2022,41(6):82-93.
[8]李靜雪,甄成剛.粒子流體表面重建技術(shù)研究[J].信息系統(tǒng)工程,2019(8):140,142.(Li Jingxue,Zhen Chenggang.Research on particle fluid surface reconstruction technology[J].Information Systems Engineering,2019(8):140,142.)
[9]Ummenhofer B,Koltun V.Adaptive surface reconstruction with multiscale convolutional kernels[C]//Proc of IEEE/CVF International Conference on Computer Vision.Piscataway,NJ:IEEE Press,2021:5631-5640.
[10]Xiao Xiangyun,Zhang Shuai,Yang Xubo.Real-time high-quality surface rendering for large scale particle-based fluids[C]//Proc of the 21st ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games.New York:ACM Press,2017:1-8.
[11]Brito C J D S,De Silva A L B V,Teixeira J M,et al.Ray tracer based rendering solution for large scale fluid rendering[J].Computers & Graphics,2018,77:65-79.
[12]Li Hui,Chang Bohong,Wang Lian,et al.Surface reconstruction for tin-based perovskite solar cells[J].ACS Energy Letters,2022,7(11):3889-3899.
[13]Wu Tong,Zhou Zhiqiang,Wang Anlan,et al.A real-time adaptive ray marching method for particle-based fluid surface reconstruction[C]//Proc of Eurographics Symposium on Rendering.Goslar,Germany:Eurographics Association,2022.
[14]Yang Wencong,Gao Chengying.A completely parallel surface reconstruction method for particle-based fluids[J].The Visual Compu-ter,2020,36(10):2313-2325.
[15]Sandim M,Oe N,Cedrim D,et al.Boundary particle resampling for surface reconstruction in liquid animation[J].Computers & Gra-phics,2019,84:55-65.
[16]Hopp-Hirschler M,Shadloo M S,Nieken U.A smoothed particle hydrodynamics approach for thermo-capillary flows[J].Computers & Fluids,2018,176:1-19.
[17]Liu Wenbin,Ma Dongjun,Qian Jianzhen,et al.High-accuracy three-dimensional surface detection in smoothed particle hydrodynamics for free-surface flows[EB/OL].(2022-05-04).https://arxiv.org/abs/2205.02742.
[18]Akinci G,Ihmsen M,Akinci N,et al.Parallel surface reconstruction for particle-based fluids[J].Computer Graphics Forum,2012,31(6):1797-1809.
[19]Wu Wei,Li Hongping,Su Tianyun,et al.GPU-accelerated SPH fluids surface reconstruction using two-level spatial uniform grids[J].The Visual Computer,2017,33(11):1429-1442.
[20]鄒長(zhǎng)軍,尹勇.基于Narrow Band FLIP方法的流體模擬[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2018,30(4):577-583.(Zou Changjun,Yin Yong.Fluid simulation based on Narrow Band FLIP method[J].Journal of Computer-Aided Design & Computer Graphics,2018,30(4):577-583.)
[21]Chen Qiaorui,Zhang Shuai,Zheng Yao.Enhanced narrow band surface reconstruction with anisotropic kernel[J].Computers & Gra-phics,2022,102:280-288.
[22]Takahashi T,Batty C.Fast marching-cubes-style volume evaluation for level set surfaces[J].Journal of Computer Graphics Techniques,2022,11(2):30-45.
[23]Hochstetter H,Orthmann J,Kolb A.Adaptive sampling for on-the-fly ray casting of particle-based fluids[C]//Proc of High Performance Graphics.Goslar,Germany:Eurographics Association,2016:129-138.
[24]Fraedrich R,Auer S,Westermann R.Efficient high-quality volume rendering of SPH data[J].IEEE Trans on Visualization and Computer Graphics,2010,16(6):1533-1540.
[25]Zirr T,Dachsbacher C.Memory-efficient on-the-fly voxelization and rendering of particle data[J].IEEE Trans on Visualization and Computer Graphics,2017,24(2):1155-1166.
[26]Piochowiak M,Rapp T,Dachsbacher C.Stochastic volume rendering of multi-phase SPH data[J].Computer Graphics Forum,2021,40(1):97-109.
[27]Macklin M,Myuller M.Position based fluids[J].ACM Trans on Graphics,2013,32(4):1-12.
[28]王得成,陳向?qū)?,易輝,等.基于自適應(yīng)聯(lián)合雙邊濾波的深度圖像空洞填充與優(yōu)化算法[J].中國(guó)激光,2019,46(10):294-301.(Wang Decheng,Chen Xiangning,Yi Hui,et al.Depth image hole filling and optimization algorithm based on adaptive joint bilateral filtering[J].China Laser,2019,46(10):294-301.)
[29]Li Fubing,Su Yongqi.Stackless KD-tree traversal for ray tracing[C]//Proc of the 2nd International Conference on Electronics,Communications and Information Technology.Piscataway,NJ:IEEE Press,2021:1168-1172.
[30]張文勝,解騫,鐘瑾,等.基于八叉樹(shù)鄰域分析的光線跟蹤加速算法[J].圖學(xué)學(xué)報(bào),2015,36(3):339-344.(Zhang Wensheng,Xie Qian,Zhong Jin,et al.Ray tracing acceleration algorithm based on octree neighborhood analysis[J].Journal of Graphics,2015,36(3):339-344.)
收稿日期:2023-01-23;修回日期:2023-03-14基金項(xiàng)目:四川省重點(diǎn)研發(fā)項(xiàng)目(2023YFG0122)
作者簡(jiǎn)介:周志強(qiáng)(1996-),男,河南商丘人,碩士,主要研究方向?yàn)橛?jì)算機(jī)圖形學(xué);吳桐(1997-),男,福建漳州人,碩士,主要研究方向?yàn)橛?jì)算機(jī)圖形學(xué);張嚴(yán)辭(1975-),男(通信作者),四川成都人,教授,博導(dǎo),博士,主要研究方向?yàn)橛?jì)算機(jī)圖形學(xué)、并行繪制、虛擬現(xiàn)實(shí)、基于GPU的通用并行計(jì)算、3D游戲技術(shù)(yczhang@scu.edu.cn).