FBX骨骼坐標系與模型坐標系的關系


采用assimp加載FBX文件。首先記錄下ubuntu下assimp的編譯安裝。

cd assimp_unzip_dir
mkdir build
cd build && cmake ..
make
sudo make install
//這樣,assimp的頭文件就安裝在/usr/local/include,lib文件在/usr/local/lib

-------------------------------------------------------------------------------------------------------------

assimp加載完模型后,aiScene里面,aiMesh數組負責保存mesh相關的幾何信息(還包括該mesh種架設的骨骼們),而aiNode,一棵場景樹保存了各個mesh?node?bone?的層級關系。而骨骼動畫就依賴這棵樹。

 

每個bone會關聯一些定點及對應的權值。bone變換會依據權重施加到對應的定點上。如何施加呢?

 

首先,assimp的mesh的vertice們定義在模型坐標系下,在這套坐標系下定義了一顆場景樹,根節點保存了模型坐標系到根節點坐標系的變換矩陣,而場景樹的內部節點和葉子節點都會保存其相對於父節點坐標系的變換矩陣。對於定義了骨骼的節點,為了將定義在模型坐標系下的定點坐標轉換到骨骼坐標系下,每個骨骼還會關聯一個mOffsetMatrix。這樣我們對定點施加變換時首先利用mOffsetMatrix將定點轉換到骨骼坐標系下,然后進行變換,接着沿着樹結構一直向上到根節點,最后再轉換到模型坐標系下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM