亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于嵌入網(wǎng)格的固體碎裂模擬和動畫方法

文檔序號:8260258閱讀:715來源:國知局
基于嵌入網(wǎng)格的固體碎裂模擬和動畫方法
【技術領域】
[0001] 本發(fā)明屬于計算機圖形學與動畫技術領域,具體涉及一種基于嵌入網(wǎng)格的固體碎 裂模擬及其動畫方法。
【背景技術】
[0002] 隨著過去幾十年來計算機運算速度的提升,計算機圖形學的相關技術飛速發(fā)展, 基于物理的動畫模擬在電影、游戲、建筑等各個行業(yè)得到了廣泛的應用。在這個領域中主要 分成液體和固體的動畫模擬,液體模擬主要有基于粒子的系統(tǒng)和基于流體場來兩個方面。 相對于液體而言,固體的模擬方式可謂花樣繁多。主要有:剛體(rigid body),非形變的固 體,主要用于碰撞計算,在游戲和動畫仿真中應用很多。形變體(deformation),可以在一定 范圍內(nèi)改變自身的形狀,可以用于判斷固體的內(nèi)力情況。布料(cloth)和纖維(fiber),對 于自碰撞檢測與處理要求很高。以及其他一些固體的模擬方式。下面首先介紹一些常見的 固體碎裂模擬算法。
[0003] 常見的固體模擬方法是有限元法(finite element method,F(xiàn)EM)和無網(wǎng)格法 (meshless methods)〇
[0004] 1)有限元法:在上世紀90年代末,在碎裂模擬中對于固體的表示方式主要基于 有限元法。該方法將一個固體劃分成若干個小正方體或四面體,當固體因為碰撞或其他 原因而導致速度改變,就會產(chǎn)生形變。然后可以根據(jù)固體形變的大小計算出固體的應力 (stress)以及應力的方向。
[0005] 當應力超出系統(tǒng)設定的碎裂閾值時候,就可以沿著劃分好的有限元邊界產(chǎn)生裂 紋。以四面體而言,當四面體的頂點分裂開時候固體就產(chǎn)生了碎裂。同時,通過將四面 體進行重網(wǎng)格化,可以使得裂紋更加精細,真實。之后Muller (M〇LLERM.,MCMILLAN L.,DORSEY J. , JAGNOff R. , "Real-time simulation of deformation and fracture of stiff materials. " In Proceedings of the Euro graphics workshop on Computer animation and simulation, 2001 :113 - 124.)將該方法進行簡化實現(xiàn)了實時的應用,在一 些高端游戲中的固體碎裂采用了該算法。
[0006] 2)無網(wǎng)格法(meshless methods)
[0007] 無網(wǎng)格法和有限元法不同,不需要針對形變體進行體劃分,而是采用采樣粒 子的方式來模擬固體,從而不用維護有限元法過程中有限元之間的鄰居關系。同時, 有限元的裂紋需要沿著有限元的邊界生成,如果需要更精細的裂紋效果則需要進行 有限元的重網(wǎng)格化,從而造成很大的開銷。無網(wǎng)格法通過對固體內(nèi)部進行動態(tài)采樣, 根據(jù)采樣點周圍的鄰居點的關系建立裂紋。例如基于MLS(moving least squares) 的無網(wǎng)格法(STEINEMANN D.M. A.,GROSS M.0TADUY. "Fast arbitrary splitting of deforming objects. "Eurographics/ACM SIGGRAPH Symposium on Computer Animation,2006:27-34.)。但是該方法對于采樣點的分布以及采樣點周圍的鄰居的數(shù)量有 很多限制。由于基于粒子的邊界并非顯式表示的,準確找到標示固體的表面的粒子對于無 網(wǎng)格法也是一個很大的挑戰(zhàn)。

【發(fā)明內(nèi)容】

[0008] 本發(fā)明提出了一種新方法來模擬固體的形變和碎裂過程:歐拉框架(Eulerian model)表示的固體模型之上嵌入表面網(wǎng)格(embedded surface mesh)進行固體物理運動 現(xiàn)象模擬計算,從而產(chǎn)生精妙的固體形變、產(chǎn)生裂紋并最終碎裂的動畫現(xiàn)象的仿真模擬。本 發(fā)明的方法避免了在傳統(tǒng)的有限元法(finite element method,F(xiàn)EM)中存在的重網(wǎng)格化 (remesh)或是無網(wǎng)格法(meshless method)中重米樣(resample)等一些問題。
[0009] 本發(fā)明采用的技術方案如下:
[0010] 一種基于嵌入網(wǎng)格的固體碎裂模擬和動畫方法,其步驟包括:
[0011] 1)將仿真空間劃分成離散的三維歐拉柵格,采用歐拉場模擬固體在動力學上產(chǎn)生 的形變和碎裂過程;采用三角形表面網(wǎng)格表示待模擬物體的幾何外形,并將該表面網(wǎng)格嵌 入對應的歐拉柵格單元中;
[0012] 2)當物體由于擠壓碰撞等物理作用而導致斷裂、碎裂時,在每一個時間步內(nèi)對物 體的表面和內(nèi)部進行采樣,并計算采樣點的應力,當該應力的最大特征值超過設定的最大 閾值時,在采樣點位置初始化裂紋并創(chuàng)建裂紋;
[0013] 3)對每一條裂紋,跟蹤裂紋前端的生長位置,以裂紋前端節(jié)點作為采樣點來確定 裂紋前端的生長速度和方向,進行動態(tài)裂紋生長,當所有裂紋前端節(jié)點和表面連接起來時, 裂紋終止。
[0014] 進一步地,步驟1)中嵌入歐拉柵格單元的表面網(wǎng)格由頂點坐標列表和三角形列 表組成,并滿足兩個必要條件:完整閉包;面法向量連續(xù)且指向物體外。
[0015] 進一步地,步驟2)初始化裂紋時,創(chuàng)建裂紋的兩個表面,將裂紋前端連接的裂紋 的兩個表面分別稱為正面和負面,在初始化時正面和負面可任意標記,但保證在之后的裂 紋生長過程中正面始終保存在正面列表,負面始終保存在負面列表中。
[0016] 進一步地,步驟2)創(chuàng)建的裂紋包括表面裂紋和內(nèi)部裂紋;在嵌入表面網(wǎng)格表面上 的采樣點超過閾值時開始在表面創(chuàng)建裂紋,并進行表面路徑查找及表面網(wǎng)格連接工作;內(nèi) 部裂紋不涉及路徑查找以及和表面連接的過程。
[0017] 進一步地,步驟2)在表面網(wǎng)格新建裂紋的過程包括:
[0018] a)尋找表面路徑:當準備在表面上某采樣點生成新裂紋時,通過計算獲得該裂紋 面的法向量和采樣點的位置,以確定一個裂紋面;根據(jù)表面網(wǎng)格和裂紋面求得相交的三角 形,通過限制找到的頂點離采樣點的距離,在相交三角形中上確定兩個裂紋前端節(jié)點和 F1,再尋找到到F1在表面網(wǎng)格上的路徑;
[0019] b)創(chuàng)建新裂紋面,即插入新點和新三角形到已存在的嵌入表面網(wǎng)格中;
[0020] c)記錄裂紋前端節(jié)點的信息,即裂紋前端之間的相鄰信息和每個裂紋前端節(jié)點連 接的裂紋正負面的信息;
[0021] d)確定物體內(nèi)部創(chuàng)建好的正負裂紋和表面三角形的連接關系,對表面網(wǎng)格進行重 連接。
[0022] 進一步地,步驟3)在進行裂紋生長時,當兩個相鄰裂紋前端節(jié)點距離過大或過小 時進行插入或合并的操作,以避免創(chuàng)建出的裂紋網(wǎng)中的三角形形狀失真;當插入新節(jié)點時, 采用三次樣條插值(cubic spline插值)法計算新節(jié)點的位置;當合并節(jié)點時,將合并節(jié)點 的相關信息保存到已經(jīng)合并的頂點中去。
[0023] 進一步地,步驟3)所述裂紋終止分為兩個步驟:正確選擇表面頂點作為裂紋前端 節(jié)點的連接點,以及相鄰裂紋前端節(jié)點之間的三角形面片和表面面片的連接。
[0024] 本發(fā)明通過采用三角形表面網(wǎng)格表示物體的幾何外形,并將該表面網(wǎng)格嵌入歐拉 框架表示的物理仿真計算單元一的柵格單元(grid cell)中,這樣既能夠精確地描述物體 表面及其外觀形狀變化信息,又能夠使物體本質(zhì)的物理運動模擬過程更加準確;當物體由 于擠壓碰撞等物理作用而導致其外觀形態(tài)發(fā)生改變時,尤其是產(chǎn)生斷裂、碎裂等現(xiàn)象時,裂 紋表面會根據(jù)所受外力作用動態(tài)地創(chuàng)建、并隨時間生長、發(fā)展或終止;并通過一系列表面網(wǎng) 格的拓撲操作動態(tài)維護正確的物體表面網(wǎng)格信息及其表示的幾何形狀。基于本發(fā)明的方 法,可以處理非連通物體處于同一個歐拉柵格單元中時造成不同運動方式的奇異情況的問 題,具有物體表示精確、邊界清晰,同時又有效減少了計算復雜程度的優(yōu)點。
【附圖說明】
[0025] 圖1是應力的表示方式示意圖。
[0026] 圖2是物體邊界處特殊處理的二維示例圖。
[0027] 圖3是特殊柵格單元的處理示意圖。
[0028] 圖4是物體的三角形表示的示意圖。
[0029] 圖5是嵌入表面網(wǎng)格上的裂紋初始化示意圖。
[0030] 圖6是柵格單元內(nèi)部裂紋初始化示意圖。
[0031] 圖7是表面初始化的裂紋結(jié)果示意圖。
[0032] 圖8是表面上裂紋的生成路徑示意圖。
[0033] 圖9是最短路徑不例圖。
[0034] 圖10是根據(jù)裂紋所對應的表面路徑確定候選三角形頂點的示意圖。
[0035] 圖11是初始化的表面裂紋示意圖。
[0036] 圖12是裂紋的生長過程示意圖。
[0037] 圖13是相互交叉的兩個表面及包含裂紋前端節(jié)點的示意圖。
[0038] 圖14是裂紋網(wǎng)格以及裂紋前端節(jié)點和表面連接的示意圖。
[0039] 圖15是裂紋的生長過程的實例效果圖。
[0040] 圖16是球體撞墻的斷裂過程示例圖。
[0041] 圖17是復雜表面情況下多裂紋結(jié)果示例圖。
[0042] 圖18是將圖17中被裂紋分割的多塊物體拖動開后的效果圖。
【具體實施方式】
[0043] 為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面通過具體實施例和 附圖,對本發(fā)明做進一步說明。
[0044] 本發(fā)明創(chuàng)新性提出基于歐拉方法來模擬固體碎裂的方式。該方法避免了在傳統(tǒng)的 有限元法中的重網(wǎng)格化或是無網(wǎng)格法中重采樣等一些問題。為了解決歐拉方法下確定固體 表面的問題,采用在動力學計算模擬中嵌入顯式表面網(wǎng)格的方案。通過將一個物理仿真計 算的單元"歐拉柵格單元"根據(jù)嵌入表面網(wǎng)格的邊界劃分成多個部分,判定并確定在同一歐 拉柵格單元內(nèi)的物體分別只受到哪些柵格單元上速度和應力的影響。這樣即確保了計算固 體時邊界的正確性,又解決了歐拉法難以確定固體表面的問題。
[0045] 本發(fā)明方法的總體步驟如下:
[0046] 1.數(shù)據(jù)預處理操作,針對待動畫的三維模型及其初始運動狀態(tài),創(chuàng)建其歐拉場表 示;
[0047] 2.針對仿真動畫過程中的每一時間步進行動畫計算
[0048] 2. 1首先更新歐拉柵格單元。更新的具體步驟包括首先對柵格單元進行內(nèi)外檢測, 對于每個位于物體內(nèi)部的柵格單元執(zhí)行下列三個步驟的操作,1)計算該柵格的新速度,2) 增加體積力(body force),3)計算柵格單元更新之后的新應力。
[0049] 2. 2根據(jù)柵格單元物理數(shù)值的變化,在嵌入三維網(wǎng)格上計算裂紋的生長并進行裂 紋和表面網(wǎng)格的拓撲操作。具體步驟包括對每一條裂紋進行處理,裂紋的處理又包含以下 步驟:對每條裂紋中的前端節(jié)點,首先計算前端節(jié)點的生長,然后前端節(jié)點和表面節(jié)點或其 他裂紋表面連接,最后分裂前端節(jié)點。
[0050] 2. 3對三維網(wǎng)格采樣計算新裂紋。具體步驟包括在物體表面和內(nèi)部隨機抽取采樣 點,針對每個采樣點計算采
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1