我创建了自己的蒙皮网格加载程序。它工作正常,但是我的问题是我不知道如何变换(缩放和旋转)蒙皮网格,以便将变换“​​烘焙”到顶点上。如果只是几何图形,则顶点的转换很容易,但是现在涉及到蒙皮信息,例如,如果我进行缩放,则网格将全部拉伸。我知道我也需要转换皮肤数据,但是哪些部分呢?所有绑定姿势矩阵?逆绑定姿势矩阵?我似乎不明白该怎么做。

我的实现在C#和OpenTK中,我专门加载从Blender 2.6导出的Skinned Collada文件。

提前致谢。

最佳答案

我不了解C#和OpenTK,但是我会在理论上提供帮助。顶点通过加权全局变换矩阵进行变换。要形成全局变换,需要串联每个关节的局部变换。要创建局部变换,需要将局部平移,旋转和缩放连接起来。重量将来自关节。因此,我认为您需要对绑定姿势进行联合局部旋转/平移/缩放,然后操纵这些局部矩阵并将它们形成为全局矩阵。之后,将权重应用于全局变换,然后变换顶点。

以下链接可能与您的问题相似。
COLLADA: Inverse bind pose in the wrong space?

我创建了这个collada文件播放器,但是使用C ++。
http://www.youtube.com/watch?v=bXBfVl-msYw

关于c# - 如何在网格物体加载和处理期间变换蒙皮网格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7989177/

10-12 12:43
查看更多