1. 程式人生 > >OGL(教程38)——骨骼動畫

OGL(教程38)——骨骼動畫

原文地址:http://ogldev.atspace.co.uk/www/tutorial38/tutorial38.html

背景知識:
最終,學習到這裡。本教程大約百萬的讀者(也許有些誇張,但是確實有不少讀者)會問:骨骼動畫,也就是通常說的蒙皮,這裡使用的是Assimp庫。

骨骼動畫實際上有兩個處理過程。第一個是有設計師執行,第二個是有你們,程式設計師執行(或者是你寫的引擎執行)。第一個部分發生在模型軟體內部,這個叫做裝配階段。這裡發生了什麼呢,設計師在網格內部定義了骨骼。網格代表了面板物件,它可以是人類,怪物或者是任何其他的東西,而骨骼被用來移動網格,以一種模擬現實實際的移動方式。這是通過把每個頂點分配給一個或者多個骨骼實現。當一個頂點被分配到一個骨骼,就會定義一個權重,此權重決定了骨骼對頂點移動的影響大小。最常見的方式保證一個頂點的所有權重加起來等於1。比如,一個頂點處於兩個骨骼之間,我們可以把兩個骨骼對此頂點的影響權重分別設定為0.5,因為我們想兩個骨骼對頂點的影響相同。但是如果把兩個骨骼對其權重都設定為1,那麼意味著每個骨骼只能獨立影響此頂點。