您好,登錄后才能下訂單哦!
在物理模擬中,固體對象通常分為1)剛體(Rigid body),2)軟體(Soft body),3)布料(Cloth)。從底層的物理原理來看,這三者并沒有什么區別——純剛體在自然界中是無法找到的,所有物體在某種情況下都是可形變的,布料其實是一個三維的軟體,因為它是有一定厚度的。但從算法和模擬的角度來看,把這三種對象分開是非常有意義的;比如假設石頭是無限硬的剛體并不會造成視覺上的錯誤,反而簡化了處理和模擬此類物體,又比如將布料模擬成2d的物體而不是3d的物體將會增加模擬效率,并且能夠減小內存消耗。
有限單元法(Finite Element Methods)是最廣泛的應用于固體模擬的技術之一。這個方法將一般的偏微分方程轉化為線性方程組系統,通常這些方程組是非線性的。求解非線性方程組對于實時的模擬來說當然太慢了,在實際的應用中通常使用的是線性的近似,特別是變形非常小的情況,比如建筑物的分析。但是,對于大變形的物體,這樣的處理方式得到的效果就會非常的假,一個能夠提速FEM的方法就是將變形分為線性變換和旋轉變換兩部分分別進行求解。
在實時應用中,固體通常并不是用FEM Mesh來處理,而是被表示為質量彈簧網格(Mass Spring Networks)。質量彈簧網格相比于FEM更易于編程,并且運行起來會更快,同時也會有一些缺點 - 很難調整,當網格空間到0的時候很難得到真實的收斂解,不過在實時模擬的場景中,這些都不是很嚴重的問題。布料大部分的時候都是用質量彈簧網格系統來模擬的,因為這樣的網格用2d結構的布料非常簡單。在FEM框架中,特殊的可以表示彎曲的單元可以用于布料的模擬,但是沒必要那么復雜,并且也太慢了。由于模擬應當是無條件穩定的,簡單的顯示積分不能保證,而復雜的隱式積分很難去用代碼實現,跑起來也很慢,還要考慮到阻尼。
當物體被假設為一個剛體的時候,它的狀態就可以被描述為一個質點+朝向+線速度+角速度。這樣就可以模擬大量的剛性的物體。剛體的模擬在每一個游戲的物理引擎中都是極其重要的一個部分,因為大部分游戲中的物體都可以被當作剛性的。
原文
Real Time Physic Class - http://www.matthiasmueller.info/realtimephysics/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。