本發(fā)明涉及的是一種圖形處理領(lǐng)域的技術(shù),具體是一種動態(tài)粒子集合的表面渲染方法及系統(tǒng)。
背景技術(shù):
基于粒子的拉格朗日方法,可以比較快速的進(jìn)行流體模擬。但是對于動態(tài)粒子集合的表面渲染質(zhì)量差,表面不平滑甚至能看到表面突出的粒子小球,或者表面過于平滑而模糊了大量流體細(xì)節(jié)。目前的渲染技術(shù)對內(nèi)存要求高,渲染一幀圖像就需要幾分鐘甚至更長的時間。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)中采用雙邊濾波方法對深度圖得到的平滑結(jié)果失真較為嚴(yán)重,無法滿足高精度高質(zhì)量的大規(guī)模粒子模擬的需求,并且現(xiàn)有技術(shù)多通過叉乘切向量求像素法向,導(dǎo)致法向結(jié)果精確性無法得到保證,無法適用于獨立粒子渲染等缺陷,提出一種動態(tài)粒子集合的表面渲染方法及系統(tǒng)。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
本發(fā)明涉及一種動態(tài)粒子集合的表面渲染方法,首先記錄目標(biāo)流體粒子位置數(shù)據(jù),通過粒子濺射方法得到粒子集合的深度圖并作為流體表面預(yù)估,經(jīng)過光線投射過程查找等值面,并采用gpu并行加速來加速光線投射過程,通過對每個粒子的鄰域粒子集進(jìn)行主成分分析來估計流體表面法向量并得到表面法向量圖,最后將表面法向量圖導(dǎo)入光線追蹤器中得到表面渲染結(jié)果。
本發(fā)明具體包括以下步驟:
1)采用基于粒子的流體模擬方法進(jìn)行流體模擬,并記錄每一幀流體粒子的粒子位置數(shù)據(jù);
2)對粒子位置數(shù)據(jù)進(jìn)行解析,并采用粒子濺射方法進(jìn)行表面深度估計,得到深度圖;
3)將深度圖作為流體表面的預(yù)估,采用光線投射方法,通過sph密度估計方程定義的標(biāo)量場來確定等值面,并同時采用gpu并行加速來加速光線投射與采樣計算過程;
4)通過主成分分析來估計流體表面法向量并得到表面法向量圖;
5)將表面法向量圖導(dǎo)入光線追蹤器中得到表面渲染結(jié)果。
所述的步驟2)具體包括以下步驟:
2.1)采用具有深度偏移的點精靈渲染方式將所有的粒子位置快速渲染成較大的實心球;
2.2)通過深度測試得到深度圖;
2.3)調(diào)節(jié)渲染半徑,使得深度圖接近實際表面。
所述的sph密度估計方程定義的標(biāo)量值
所述的gpu并行加速是指令每一個線程對應(yīng)一個像素光線,沿著投射的射線方向?qū)α黧w粒子進(jìn)行間隔采樣并計算密度值直到滿足定義等值面要求而停止,并將所有光線采樣次數(shù)接近一致。
所述的步驟4)具體包括以下步驟:
4.1)基于標(biāo)準(zhǔn)的sph梯度計算,使用spiky核函數(shù),計算近似法向量
4.2)構(gòu)造xi處協(xié)方差矩陣
4.3)采用雅克比迭代求解協(xié)方差矩陣ci的三對特征值和特征向量,得到最小特征值對應(yīng)
的特征向量ni”;
4.4)計算表面法向量ni=(1-ω)ni+ωni,得到表面法向量圖,其中:
所述的表面法向量圖采用雙邊濾波平滑結(jié)果。
本發(fā)明涉及一種實現(xiàn)上述方法的動態(tài)粒子集合的表面渲染系統(tǒng),包括:位置記錄模塊、表面深度估計模塊、光線投射模塊、等值面提取模塊、gpu并行加速模塊以及表面法向量計算模塊,其中:位置記錄模塊記錄粒子位置數(shù)據(jù)并輸送到表面深度估計模塊,表面深度估計模塊進(jìn)行表面深度估計后得到深度圖,光線投射模塊根據(jù)深度圖進(jìn)行光線投射,gpu并行加速模塊對光線投射過程進(jìn)行加速,等值面提取模塊在光線投射過程中提取等值面,表面法向量計算模塊根據(jù)等值面計算表面法向量并得到表面法向量圖。
技術(shù)效果
與現(xiàn)有技術(shù)相比,本發(fā)明將內(nèi)存與計算資源集中在實際流體表面附近,而不是整個模擬空間,適用于對大規(guī)模粒子集合的實時可視化和表面預(yù)覽,有效地排除噪音干擾,得到了相對平滑的法向量結(jié)果,容易嵌入到已有的流體模擬框架中。
附圖說明
圖1為本發(fā)明流程示意圖;
圖2為渲染結(jié)果對比圖。
具體實施方式
本實施例中,采用一立方米水由水池上方自由落入水池的場景作為渲染場景,該場景中,對光線與背景的折射,以及對光線的反射,都可以較為逼真的被展現(xiàn)出來。同時,在渲染過程中,流體本身的物理細(xì)節(jié)和特征也得以充分展現(xiàn)。
如圖1所示,渲染方法中,首先記錄目標(biāo)流體粒子位置數(shù)據(jù),通過粒子濺射方法得到粒子集合的深度圖并作為流體表面預(yù)估,經(jīng)過光線投射過程查找等值面,并采用gpu并行加速來加速光線投射過程,通過對每個粒子的鄰域粒子集進(jìn)行主成分分析來估計流體表面法向量并得到表面法向量圖,即針對每個粒子以其本身為圓心將固定半徑的球形區(qū)域內(nèi)所包含的所有粒子作為主成分分析對象從而估計流體表面法向得到表面法向量圖,最后將表面法向量圖導(dǎo)入光線追蹤器中得到表面渲染結(jié)果。具體包括以下步驟:
1)采用基于粒子的流體模擬方法進(jìn)行流體模擬,并記錄每一幀流體粒子的粒子位置數(shù)據(jù)。
2)對粒子位置數(shù)據(jù)進(jìn)行解析,并采用粒子濺射方法進(jìn)行表面深度估計,得到深度圖。
2.1)采用具有深度偏移的點精靈渲染方式將所有的粒子位置快速渲染成較大的實心球。即采用有紋理映射并能改變大小的特殊點元,將所有的粒子快速渲染成實心球。
2.2)通過顯卡的深度測試能力得到深度圖。
2.3)調(diào)節(jié)渲染半徑,使得深度圖接近實際表面。使用深度圖作為流體表面的預(yù)估,輔助光線查找等值面,省略了相機到實際表面的大量空白區(qū)域計算。
3)將深度圖作為流體表面的預(yù)估,采用光線投射方法,通過sph密度估計方程定義的標(biāo)量場來確定等值面,并采用gpu并行加速來加速光線投射過程。所述的等值面是指在計算光線投射與采樣的過程中,所設(shè)置與定義的終止曲面。在光線沿著投射的直線方向間隔對流體粒子進(jìn)行采樣和密度值計算的過程中,定義采樣終止值,形成終止曲面。
所述的光線投射是指從相機原點對每一個像素點投射出一條光線,計算每一條光線與流體表面的交點,將所有表面交點放到一起,得到流體的整個表面,設(shè)置每一條光線的終止條件為采樣達(dá)到定義的等值面值。光線不會穿入流體內(nèi)部,所得到的表面為基于屏幕空間的,僅僅渲染得到最靠近相機的那一層流體表面。
所述的sph密度估計方程定義的標(biāo)量場的標(biāo)量值
光線投射方法是在gpu上實現(xiàn),gpu并行加速是指令每一個線程對應(yīng)一個像素光線,沿著投射的射線方向?qū)α黧w粒子進(jìn)行間隔采樣并計算密度值直到滿足定義等值面要求而停止,并將所有光線采樣次數(shù)接近一致。
4)通過主成分分析來估計流體表面法向量并得到表面法向量圖。具體步驟包括:
4.1)基于標(biāo)準(zhǔn)的sph梯度計算,使用spiky核函數(shù),計算近似法向量
4.2)構(gòu)造xi處協(xié)方差矩陣
4.3)采用雅克比迭代求解協(xié)方差矩陣ci的三對特征值和特征向量,得到最小特征值對應(yīng)
的特征向量ni″。
4.4)計算表面法向量ni=(1-ω)ni+ωni,得到表面法向量圖,其中:
5)將表面法向量圖導(dǎo)入光線追蹤器中得到表面渲染結(jié)果。
本實施例涉及一種實現(xiàn)上述方法的動態(tài)粒子集合的表面渲染系統(tǒng),包括:位置記錄模塊,表面深度估計模塊、光線投射模塊、等值面提取模塊、gpu并行加速模塊以及表面法向量計算模塊,其中:位置記錄模塊記錄粒子位置數(shù)據(jù)并輸送到表面深度估計模塊,表面深度估計模塊進(jìn)行表面深度估計后得到深度圖,光線投射模塊根據(jù)深度圖進(jìn)行光線投射,gpu并行加速模塊對光線投射過程進(jìn)行加速,等值面提取模塊在光線投射過程中提取等值面,表面法向量計算模塊根據(jù)等值面計算表面法向量并得到表面法向量圖。
如圖2所示,三個渲染模型從左到右,依次為采用屏幕空間方法、各向異性渲染方法和本發(fā)明方法得到的渲染圖。對同一動態(tài)粒子集合的表面提取結(jié)果中,屏幕空間渲染方法的輸出結(jié)果所得到的表面質(zhì)量很差。而采用各向異性核改進(jìn)的屏幕空間方法的渲染結(jié)果,相比于直接的屏幕空間方法,表面平滑了很多,但是表面仍舊凹凸不平。很明顯,相比于前兩種實時渲染方法,本發(fā)明方法得到了更加平滑的表面。
同粒子數(shù)的不同場景進(jìn)行了不同分辨率情況下的渲染實驗,表1中列出了不同粒子情況下渲染所需的運行時間。從表1所列出的實驗數(shù)據(jù)中,本發(fā)明方法可實時渲染包含超過兩百萬粒子的流體場景。特別地,我們能夠在交互的水平下處理超過一億兩千萬粒子的大規(guī)模場景。
表1不同分辨率粒子的渲染時間
與現(xiàn)有技術(shù)相比,本發(fā)明將內(nèi)存與計算資源集中在實際流體表面附近,而不是整個模擬空間,適用于對大規(guī)模粒子集合的實時可視化和表面預(yù)覽,利用其低通濾波特性,有效地排除噪音干擾,得到了相對平滑的法向量結(jié)果,本發(fā)明方法容易嵌入到已有的流體模擬框架中。
上述具體實施可由本領(lǐng)域技術(shù)人員在不背離本發(fā)明原理和宗旨的前提下以不同的方式對其進(jìn)行局部調(diào)整,本發(fā)明的保護范圍以權(quán)利要求書為準(zhǔn)且不由上述具體實施所限,在其范圍內(nèi)的各個實現(xiàn)方案均受本發(fā)明之約束。