專利名稱:基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及平滑粒子流體動力學(xué)流體繪制領(lǐng)域,尤其涉及一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法。
背景技術(shù):
經(jīng)典的平滑粒子流體動力學(xué)流體繪制是使用Marching Cube結(jié)合光線跟蹤方法, 可以獲得平滑且具有真實(shí)感的流體表面,然而其過低的運(yùn)行效率只適合離線繪制,而不適合實(shí)時(shí)繪制領(lǐng)域,如虛擬現(xiàn)實(shí)、游戲制作、實(shí)時(shí)動畫等。屏幕空間流體繪制技術(shù)是近幾年興起的繪制技術(shù),它通過直接繪制代表粒子的球體,或者球體的深度信息,然后加以平滑的方式獲取流體表面,避免了以往方法中開銷過大的表面提取步驟,具有很高的運(yùn)行效率,因此可以應(yīng)用于實(shí)時(shí)流體繪制。然而該方法提取的表面凹凸不平,前人提出的平滑方法都難以得到平滑的繪制結(jié)果,其原因在于各向同性的球體表面或球體的深度本身就是凹凸不平的。下面先介紹已有的屏幕空間平滑粒子流體動力學(xué)流體繪制方法I)在屏幕空間構(gòu)建流體表面網(wǎng)格模型的方法該方法首先用球體代替流體粒子,并將球體表面的像素深度記錄到深度圖D中, 再對深度圖D進(jìn)行二項(xiàng)式濾波,獲得平滑后的深度圖D’,再從D’中構(gòu)建網(wǎng)格模型。該方法在構(gòu)建網(wǎng)格模型時(shí)丟棄了過多的信息如液體厚度,難以達(dá)到較好的繪制結(jié)果,并且二項(xiàng)式濾波容易造成流體邊界擴(kuò)散。2)基于曲率最小化的屏幕空間繪制方法該方法首先用球體代替流體粒子,并將球體表面的像素深度記錄到深度圖D中, 并使用迭代的步驟,在每一次迭代中使深度圖D的曲率最小化,最終得到平滑后的深度圖 D’,然后從D’中提取像素坐標(biāo)和法線,用于流體繪制。該方法只能使相鄰的球體間過渡變?yōu)槠交?,而不能完全解決繪制球體帶來的表面凹凸問題。以上的方法都不能得到較好的平滑流體表面,其原因在于各向同性的球體表面或球體的深度本身就是凹凸不平的,也就是原始數(shù)據(jù)問題導(dǎo)致難以擬合出正確的結(jié)果。
發(fā)明內(nèi)容本發(fā)明的目的在于解決現(xiàn)有屏幕空間平滑粒子流體動力學(xué)流體繪制方法難以獲取平滑流體表面的問題,提供一一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法?;诟飨虍愋缘钠聊豢臻g平滑粒子流體動力學(xué)流體表面提取方法包括以下步驟I)使用改進(jìn)的拉普拉斯平滑方法對流體粒子世界空間坐標(biāo)做平滑處理;2)對平滑后的每個(gè)粒子i,使用加權(quán)主成分分析方法分析鄰域粒子對當(dāng)前粒子i的貢獻(xiàn),獲得粒子i的各向異性變換矩陣Gi ;3)對每個(gè)粒子i,繪制代表該粒子的橢球,并在繪制過程中應(yīng)用各向異性變換矩陣Gi,記錄每個(gè)像素的視點(diǎn)空間z軸坐標(biāo)值,得到深度圖D ;4)對深度圖D使用雙邊高斯濾波方法,得到平滑后的深度圖D’ ;5)對平滑后的深度圖D’計(jì)算每個(gè)像素對應(yīng)的視點(diǎn)空間坐標(biāo);6)根據(jù)視點(diǎn)空間坐標(biāo)求每個(gè)像素在x、y方向的切向量,并通過叉乘切向量來求該像素法向。所述的步驟I)為(I)對每個(gè)粒子i,獲取其半徑&范圍內(nèi)的所有領(lǐng)域粒子坐標(biāo);(2)根據(jù)領(lǐng)域粒子,對當(dāng)前粒子i使用拉普拉斯方法平滑方法,獲得粒子新坐標(biāo)Γ:
權(quán)利要求
1.一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法,其特征在于包括以下步驟1)使用改進(jìn)的拉普拉斯平滑方法對流體粒子世界空間坐標(biāo)做平滑處理;2)對平滑后的每個(gè)粒子i,使用加權(quán)主成分分析方法分析鄰域粒子對當(dāng)前粒子i的貢獻(xiàn),獲得粒子i的各向異性變換矩陣Gi ;3)對每個(gè)粒子i,繪制代表該粒子的橢球,并在繪制過程中應(yīng)用各向異性變換矩陣Gi, 記錄每個(gè)像素的視點(diǎn)空間z軸坐標(biāo)值,得到深度圖D ;4)對深度圖D使用雙邊高斯濾波方法,得到平滑后的深度圖D’;5)對平滑后的深度圖D’計(jì)算每個(gè)像素對應(yīng)的視點(diǎn)空間坐標(biāo);6)根據(jù)視點(diǎn)空間坐標(biāo)求每個(gè)像素在x、y方向的切向量,并通過叉乘切向量來求該像素法向。
2.根據(jù)權(quán)利要求I所述的一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法,其特征在于所述的步驟I)為(1)對每個(gè)粒子i,獲取其半徑^范圍內(nèi)的所有領(lǐng)域粒子坐標(biāo);(2)根據(jù)領(lǐng)域粒子,對當(dāng)前粒子i使用拉普拉斯方法平滑方法,獲得粒子新坐標(biāo)λ :
3.根據(jù)權(quán)利要求I所述的一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法,其特征在于所述的步驟2)為(4)對每個(gè)粒子i,獲取其半徑范圍內(nèi)的所有領(lǐng)域粒子坐標(biāo);(5)主成分分析法分析鄰域粒子,獲得各向異性變換矩陣G,其步驟為a)計(jì)算鄰域粒子位置點(diǎn)的加權(quán)均值
4.其中函數(shù)是各向同性的權(quán)重函數(shù),它取決于粒子Xi、Xj和鄰域半徑ri
5.根據(jù)權(quán)利要求I所述的一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法,其特征在于所述的步驟4)為(9)對深度圖使用雙邊高斯濾波,其濾波函數(shù)式中3
6.根據(jù)權(quán)利要求I所述的一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法,其特征在于所述的步驟5)為(10)預(yù)先求得深度圖D’中(0,0)坐標(biāo)點(diǎn)N在近平面的投影點(diǎn)N’的視點(diǎn)空間坐標(biāo)
7.根據(jù)權(quán)利要求I所述的一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法,其特征在于所述的步驟6)為
全文摘要
本發(fā)明公開了一種基于各向異性的屏幕空間平滑粒子流體動力學(xué)流體表面提取方法。其步驟為1)使用改進(jìn)的拉普拉斯平滑方法對流體粒子坐標(biāo)做平滑處理;2)使用加權(quán)主成分分析法分析粒子及其領(lǐng)域,獲得各向異性變換矩陣G;3)繪制代表粒子的橢球,在繪制中應(yīng)用變換矩陣G,記錄像素的視點(diǎn)空間深度,得到深度圖D;4)對深度圖D使用雙邊高斯濾波方法,得到平滑后的深度圖D’。5)對D’計(jì)算每個(gè)像素對應(yīng)的視點(diǎn)空間坐標(biāo);6)計(jì)算每個(gè)像素的法線。本發(fā)明解決了屏幕空間平滑粒子流體動力學(xué)流體繪制中難以解決的表面提取問題,對比以往的屏幕空間流體繪制領(lǐng)域的方法,本方法能獲得更平滑的流體表面。
文檔編號G06T17/30GK102609988SQ20121001500
公開日2012年7月25日 申請日期2012年1月18日 優(yōu)先權(quán)日2012年1月18日
發(fā)明者張昆, 王章野 申請人:浙江大學(xué)