本發(fā)明屬于計算機圖形學(xué)物理仿真,特別涉及一種基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法及系統(tǒng)。
背景技術(shù):
1、軟體仿真是計算機圖形學(xué)領(lǐng)域一個重要且具有挑戰(zhàn)性的技術(shù),其難點主要包括以下方面:在計算機中的合理建模軟體以展現(xiàn)真實的物理性質(zhì)、與剛體的交互以產(chǎn)生碰撞破碎和切割效果、多材質(zhì)的表現(xiàn)和交互過程中的材質(zhì)變化,與此同時還需要滿足可交互性能要求。目前,常用的軟體仿真方法中,質(zhì)點彈簧系統(tǒng)難以表征體積且調(diào)參困難。有限元方法雖然精確度較高但計算復(fù)雜,在涉及拓撲變化時往往需要重新劃分網(wǎng)格,從而導(dǎo)致計算開銷的額外增加?;谖恢脛恿W(xué)的方法雖然穩(wěn)定高效,但精度有限,并且難以有效地仿真復(fù)雜的多材質(zhì)耦合問題。
2、最近,在計算機圖形學(xué)中快速發(fā)展的物質(zhì)點法(mpm)能夠很好地解決上述仿真質(zhì)量問題。物質(zhì)點法混合歐拉和拉格朗日的特性,對處理大變形及拓撲變化有著天然的優(yōu)勢,其有效性已在仿真雪,泡沫,砂石,布料和橡膠等多種材料中被證實。兼容粒子網(wǎng)格算法的提出,又進一步解決了物質(zhì)點法在薄板切割下的數(shù)值粘性問題,奠定了物質(zhì)點法在切割場景下使用的基礎(chǔ)。相比于有限元等方法,物質(zhì)點法非常適合處理切割、相變以及多材質(zhì)耦合。
3、然而在大規(guī)模及高分辨率的虛擬場景下,所需拉格朗日粒子數(shù)量較多(50萬以上),且歐拉網(wǎng)格需要更為精細(如邊長256的背景網(wǎng)格),因此在現(xiàn)代高性能cpu上進行的仿真開銷過大,通常需要若干分鐘到小時才可獲得一幀的仿真結(jié)果。盡管物質(zhì)點法易于并行,并且現(xiàn)在存在許多基于現(xiàn)代gpu的并行加速方法,但其仍面臨著所需顯存過大和計算開銷過大的問題,因此仍然無法實現(xiàn)可交互的仿真結(jié)果,這阻礙了其在醫(yī)學(xué)動畫等領(lǐng)域的應(yīng)用。此外,盡管現(xiàn)有方法可以實現(xiàn)軟體的異質(zhì)性與切割,但均獨立呈現(xiàn)且未經(jīng)過良好的性能考量。目前,還沒有一個統(tǒng)一多材質(zhì)軟體形變、切割交互、破碎及實時表面重建的可交互軟體仿真方法。
技術(shù)實現(xiàn)思路
1、為解決上述技術(shù)問題,本發(fā)明提供一種基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,包括如下步驟:
2、步驟s1:獲取待仿真的三維軟體模型,以及與之交互的剛體模型;對所述三維軟體模型進行粒子采樣,得到拉格朗日粒子并對其進行初始化,以及對所述剛體模型進行剛體粒子采樣和初始化;
3、步驟s2:基于待仿真的虛擬場景,構(gòu)建歐拉網(wǎng)格grid,采用莫頓碼對grid進行編碼,并將grid進一步以444的大小構(gòu)成二級的空間塊block;分別構(gòu)建所述拉格朗日粒子與grid和block之間的映射表;將包含所述拉格朗日粒子的block記為core?block,并注冊到哈希注冊表中;
4、步驟s3:獲取core?block的鄰居空間塊neighbor?block并加入所述哈希注冊表,將core?block及其所有neighbor?block所對應(yīng)grid稱為gpu二級稀疏加速結(jié)構(gòu)ggrid;
5、步驟s4:更新所述剛體模型的狀態(tài),并構(gòu)建基于ggrid的剛體切割場;
6、步驟s5:基于ggrid以及所述剛體切割場,并行求解所述待仿真的三維軟體模型的物理顯式積分,得到所述拉格朗日粒子的下一時刻的位置,求解過程分為4個階段:拉格朗日粒子到ggrid傳遞階段、ggrid更新階段、ggrid到拉格朗日粒子傳遞階段和拉格朗日粒子更新階段;對每一幀執(zhí)行步驟s2~s5進行n次迭代;
7、步驟s6:對每一幀的最后第n次迭代時,根據(jù)當(dāng)前拉格朗日粒子的位置,基于ggrid實時重建拉格朗日粒子簇的表面三角網(wǎng)格mesh,并進一步對mesh表面網(wǎng)格進行平滑,從而實現(xiàn)所述三維軟體模型與所述剛體模型之間的模擬與交互。有益效果:
8、1、本發(fā)明提供一種基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,針對大規(guī)?;蚋叻直媛实能涹w模擬場景需求,采用gpu加速的物質(zhì)點法模擬軟體的物理運動,實現(xiàn)軟體的高效模擬。并針對軟體的異質(zhì)性及動態(tài)材質(zhì)變化,引入基于基爾霍夫應(yīng)力張量的本構(gòu)模型以支持對不同材質(zhì)的參數(shù)化動態(tài)定義,實現(xiàn)了更豐富的多材質(zhì)軟體效果,同時引入顯式破碎場,實現(xiàn)了物體破碎效果。
9、2、本發(fā)明通過在gpu二級稀疏加速結(jié)構(gòu)上構(gòu)建剛體切割場,將兼容粒子網(wǎng)格法耦合到gpu加速的物質(zhì)點法中,以支持對軟體的可交互剛體切割。同時,擴充原有的稀疏加速網(wǎng)格,并與粒子到網(wǎng)格的傳遞過程一致地在gpu二級稀疏加速結(jié)構(gòu)ggrid上構(gòu)建密度場,通過復(fù)用ggrid網(wǎng)格作為表面重建的體素網(wǎng)格,實現(xiàn)了基于密度場的實時表面重建。
1.一種基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,所述步驟s1:獲取待仿真的三維軟體模型,以及與之交互的剛體模型;對所述三維軟體模型進行粒子采樣,得到拉格朗日粒子并對其進行初始化,以及對所述剛體模型進行剛體粒子采樣和初始化,具體包括:
3.根據(jù)權(quán)利要求2所述的基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,所述步驟s2:基于待仿真的虛擬場景,構(gòu)建歐拉網(wǎng)格grid,采用莫頓碼對grid進行編碼,并將grid進一步以444的大小構(gòu)成二級的空間塊block;分別構(gòu)建所述拉格朗日粒子與grid和block之間的映射表;將包含所述拉格朗日粒子的block記為core?block,并注冊到哈希注冊表中,具體包括:
4.根據(jù)權(quán)利要求3所述的基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,所述步驟s3:獲取core?block的鄰居空間塊neighbor?block并加入所述哈希注冊表,將core?block及其所有neighbor?block所對應(yīng)grid稱為gpu二級稀疏加速結(jié)構(gòu)ggrid,具體包括:
5.根據(jù)權(quán)利要求4所述的基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,所述步驟s4:更新所述剛體模型的狀態(tài),并構(gòu)建基于ggrid的剛體切割場,具體包括:
6.根據(jù)權(quán)利要求5所述的基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,所述步驟s5:基于ggrid以及所述剛體切割場,并行求解所述待仿真的三維軟體模型的物理顯式積分,得到所述拉格朗日粒子的下一時刻的位置,求解過程分為4個階段:拉格朗日粒子到ggrid傳遞階段、ggrid更新階段、ggrid到拉格朗日粒子傳遞階段和拉格朗日粒子更新階段;對每一幀執(zhí)行步驟s2~s5進行n次迭代,具體包括:
7.根據(jù)權(quán)利要求6所述的基于gpu加速物質(zhì)點法的可切割交互軟體仿真方法,其特征在于,所述步驟s6:對每一幀的最后第n次迭代時,根據(jù)當(dāng)前拉格朗日粒子的位置,基于ggrid實時重建拉格朗日粒子簇的表面三角網(wǎng)格mesh,并進一步對mesh表面網(wǎng)格進行平滑,從而實現(xiàn)所述三維軟體模型與所述剛體模型之間的模擬與交互,具體包括:
8.一種基于gpu加速物質(zhì)點法的可切割交互軟體仿真系統(tǒng),其特征在于,包括下述模塊:
9.一種基于gpu加速物質(zhì)點法的可切割交互軟體仿真裝置,其特征在于,包括一個或多個電子設(shè)備,其中所述一個或多個電子設(shè)備用于實現(xiàn)權(quán)利要求1至7任一項所述的方法。
10.一種電子設(shè)備,其特征在于,包括:一個或多個處理器;存儲器,用于存儲一個或多個程序,其中,當(dāng)所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得所述一個或多個處理器實現(xiàn)權(quán)利要求1至7任一項所述的方法。