(Aşağıdaki orijinal posta) Düzenle (Karıştırıcıdan ogl olarak görüntülenecek doğru kemik verisi?
)Bu yüzden aşağıdaki kod ile geldim. Örgü, kemik yapısı ve animasyonları ihraç edebilirim. Basit bir iskeleti canlandırabilirim. Ama bir nedenden ötürü birden fazla kemiği canlandırıyorsam, bir şeyler ters gidiyor ve kol yanlış eksende hareket edecektir.
Benim cpp kodu burada: http://kyuu.co.uk/so/main.cpp
Benim piton ihracat kodu burada: http://kyuu.co.uk/so/test.py
birisi yanlış yapıyorum söyleyebilir misiniz? Blenderdaki kemik ruloluyla ilgili bir şey olabileceğini düşünüyorum. Bunun hakkında birçok yayın gördüm.
Teşekkürler.
(Orijinal Mesaj :)
ben eksik ben çözemiyorum şimdi ve hala bir süredir bu sorun üzerinde çalışıyor olması, bu yüzden kimse tür bana yardımcı olacak umuyorum: 3
Sağ
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;
}
Ie: benim uygulamasında aşağıdaki kodu gibi bir şey var Basit bir kemik hiyerarşisi.
ben birlikte inv_bind_pose
çalışabilir inanıyoruz:
world_bind_pose = bone.parent.world_bind_pose * local_bind_pose
inv_bind_pose = world_bind_pose.inverse()
Ben bind_pose
ana kemiğe göreceli olması gerektiğini biliyoruz.
Blender'ın z = up olduğunu biliyorum ve y = up kullanıyorum.
Ancak bu bilgileri karıştırıcıdan veremiyorum. 2.56.3 sürümünü kullanıyorum.
Matrisin döndürme kısmı bone.matrix_local
olur mu? Çeviri kısmı bone.tail() - bone.head()
mu?
Kemik rulosu nedir? Bu sonucu etkiliyor gibi görünüyor.
Bazı referanslar:
http://www.gamedev.net/topic/571044-skeletal-animation-bonespace
http://www.blender.org/development/release-logs/blender-240/how-armatures-work
Thank-size çok!
Blender> 2.6'da, openGL alanına dönüştürmek için bpy_extras.io_utils.axis_conversion (bkz: blender.org/documentation/blender_python_api_2_66a_release/…) 'i kullanabilirsiniz. – sarahm