編輯(原文如下):從攪拌機中導出的正確的骨骼數據在ogl中查看?
所以我想出了以下代碼。我可以導出網格,骨骼結構和動畫。我可以動畫一個簡單的骨架。但是由於某種原因,如果我使用一個以上的骨骼進行動畫處理,會出現一些錯誤,並且手臂會沿着錯誤的軸線移動。
我cpp的代碼是在這裏:http://kyuu.co.uk/so/main.cpp
我的Python代碼出口是在這裏:http://kyuu.co.uk/so/test.py
可能有人請告訴我,我做錯了什麼?我認爲這可能與攪拌器中的骨頭卷有關。我見過很多關於此的帖子。
謝謝。
(原帖:)
我一直對這個問題有一段時間了,但還是無法弄清楚我缺少什麼,所以我希望有人那種能幫助我:3
權,我的應用程序中有如下代碼:
class bone {
bone * child;
Eigen::Matrix4f local_bind_pose; // this i read from a file
Eigen::Matrix4f final_skinning_matrix; // i then transform each vertex by this matrix
// temporary variables
Eigen::Matrix4f inv_bind_pose;
Eigen::Matrix4f world_bind_pose;
}
iee一個簡單的骨骼層次。
我相信我能制定出inv_bind_pose
有:
world_bind_pose = bone.parent.world_bind_pose * local_bind_pose
inv_bind_pose = world_bind_pose.inverse()
我知道bind_pose
必須是相對父骨骼。
我知道攪拌器是z =向上,我正在使用y =向上。
但我無法從攪拌機中獲取此信息。我正在使用版本2.56.3。
矩陣的旋轉部分是bone.matrix_local
?翻譯部分是bone.tail() - bone.head()
?
骨折怎麼辦?看起來確實會影響結果。
一些參考:
http://www.gamedev.net/topic/571044-skeletal-animation-bonespace
http://www.blender.org/development/release-logs/blender-240/how-armatures-work
感謝你這麼多!
在攪拌機> 2.6中,您可以使用bpy_extras.io_utils.axis_conversion(參見:blender.org/documentation/blender_python_api_2_66a_release/...)轉換爲openGL空間。 – sarahm 2013-05-13 18:49:17