dae格式檔案解析(頂點、蒙皮)
阿新 • • 發佈:2019-01-26
dae格式比較開放,不同軟體匯出的格式可能有所不同,但原理應當是一樣的。以Blender匯出的為例。
首先看骨骼部分,隨便做了一個模型,先看節選的library_controller部分。
<library_controllers> <controller id="boness_plane-skin" name="boness"> <skin source="#plane002-mesh"> <bind_shape_matrix> </bind_shape_matrix> <source id="boness_plane-skin-joints"></source> <source id="boness_plane-skin-bind_poses"></source> <source id="boness_plane-skin-weights"></source> <joints> <input semantic="JOINT" source="#boness_plane-skin-joints"/> <input semantic="INV_BIND_MATRIX" source="#boness_plane-skin-bind_poses"/> </joints> <vertex_weights count="212"> <input semantic="JOINT" source="#boness_plane-skin-joints" offset="0"/> <input semantic="WEIGHT" source="#boness_plane-skin-weights" offset="1"/> <vcount></vcount> <v></v></vertex_weights></skin></controller></library_controllers>
這個模型一共有212個頂點。
skin-joints指骨骼數,本模型一共有15骨骼,而skin-bind_poses指的是骨骼的矩陣,15*16=240個數據。
skin-weights指的是蒙皮陣列,一共有919個數據。
vcount下陣列長度為212,所有資料加起來為919,而v下是15個骨骼和919個蒙皮資料的對應。
vcount每一個數據是一個頂點對應的蒙皮資料數,所以每一個頂點對應的蒙皮權重和骨骼數就可以得出來了。