遊戲引擎基礎(四)(模型與動畫,細節級別)

2021-05-22 22:44:02 字數 1470 閱讀 2104

第4部份: 模型與動畫,細節級別

角色建模與動畫

你的角色模型在螢幕上看起來怎麼樣,怎樣容易建立它們,紋理,以及動畫對於現代遊戲試圖完成的`消除不可信`因素來說至關重要。角色模型系統逐漸變得複雜起來, 包括較高的多邊形數量模型, 和讓模型在螢幕上移動的更好方式。

如今你需要乙個骨骼模型系統,有骨架和網格細節層次,單個頂點骨架的評估,骨架動畫忽略,以及比賽中停留的角度忽略。而這些甚至還沒有開始涉及一些你能做的很好的事情,像動畫混合,骨架反向運動學(ik),和單個骨架限制,以及相片真實感的紋理。這個清單還能夠繼續列下去。但是真的,在用專業行話說了所有這些以後,我們在這裡真正談論的是什麼呢?讓我們看看。 

讓我們定義乙個基於網格的系統和乙個骨骼動畫系統作為開始。在基於網格的系統,對於每乙個動畫幀,你要定義模型網格的每個點在世界中的位置。舉例來說,你有乙個包含200 個多邊形的手的模型,有 300 個頂點(注意,在頂點和多邊形之間通常並不是3個對1個的關係,因為大量多邊形時常共享頂點 – 使用條形和扇形,你能大幅減少頂點數量)。如果動畫有 10 幀,那麼你就需要在記憶體中有300個頂點位置的資料。 總共有300 x 10 = 3000 頂點,每個頂點由x,y,z和顏色/alpha資訊組成。你能看見這個增長起來是多麼的快。quake i,ii和 iii 都使用了這種系統,這種系統確實有動態變形網格的能力,比如使裙子擺動,或者讓頭髮飄動。

相比之下,在骨骼動畫系統,網格是由骨架組成的骨骼( 骨架是你運動的物件)。 網格頂點和骨架本身相關,所以它們在模型中的位置都是相對於骨架,而不是網格代表每個頂點在世界中的位置。因此,如果你移動骨架,組成多邊形的頂點的位置也相應改變。這意謂著你只必須使骨骼運動,典型情況大約有 50 個左右的骨架—很明顯極大地節省了記憶體。

骨骼動畫附加的好處

反向運動學 (ik) 是被許多人們丟棄的乙個專業術語,對它的真實含義沒有多少概念。ik 是如今遊戲裡面乙個相對比較新的系統。使用 ik ,程式設計師能夠移動乙隻手,或一條腿, 模型的其餘關節自動重新定位,因此模型被正確定向。而且有模型的關節新位置的其餘者他們自己,因此模型正確的被定向。比如,你將會說,"好,手 , 去拾起桌子上的那個杯子"並指出杯子在世界中的位置。手就會移動到那裡,且它後面的身體會調節其自身以便雙臂移動,身體適當彎曲,等等。

也有和ik相反的事情,叫做前向運動學,本質上與 ik 工作的次序相反。想像乙隻手,手附著在手臂上,手臂附著在身體上。現在想像你重重地擊中了身體。通常手臂像連迦般抽動,且手臂末梢的手隨之振動。 ik 能夠移動身體,並讓其餘的四肢自己以真實的方式移動。基本上它需要動畫師設定每種工作的大量資訊 -- 像關節所能通過的運動範圍,如果一塊骨架前面的骨架移動,那麼這塊骨架將移動多少百分比,等等。

和它現在一樣,儘管很好,它是乙個很大的處理問題,不用它你可以有不同的動畫組合而脫身。值得注意的是,真正的 ik 解決辦法需要乙個層次骨骼系統而不是乙個模型空間系統 -- 否則它們都耗時太多以致無法恰當地計算每個骨架。

lod幾何系統

遊戲引擎剖析 第4部份 模型與動畫,細節級別

gameworldchina myway.com 第4部份 模型與動畫,細節級別 角色建模與動畫 你的角色模型在螢幕上看起來怎麼樣,怎樣容易建立它們,紋理,以及動畫對於現代遊戲試圖完成的 消除不可信 因素來說至關重要。角色模型系統逐漸變得複雜起來,包括較高的多邊形數量模型,和讓模型在螢幕上移動的更好...

CSS基礎 塊級元素與盒模型

簡介 在 html4.01 中,元素通常可以分為塊級元素 block level element 和內聯元素 inline level element 兩大類。塊級元素單獨佔一行顯示,內部可以包含內聯元素或其他塊級元素 內聯元素不換行,內部只能包含其他內聯元素,在這篇文章中將只討論塊級元素。注 在 ...

3D數學基礎 3D遊戲動畫中尤拉角與萬向鎖的理解

the order of transformations is roll first,then pitch,then yaw.relative to the object s local coordinate axis,this is equivalent to rotation around th...