den*_*niz 7 opengl glsl skeletal-mesh
我实现了一个带有软件皮肤的MD5 Loader.md5中的绑定姿势是最终的,绝对位置和旋转,你只需要对关节相关的权重进行计算.
我试图实现GPU皮肤,但我陷入了困境.由于这些坐标是最终的,为什么我不能将我的3d矢量和四元数转换为矩阵并将其上传到着色器?正如我在这里读到的:http://3dgep.com/?p = 1356,我需要将我的骨架与绑定姿势的倒数相乘.但我不明白这一部分,因为我一直认为我唯一需要做的就是将最终矩阵上传到GPU并计算其余部分(权重总和等等)
你能解释一下逆绑定姿势的行为吗?
小智 15
作为该文章的原作者,我将尝试解释逆绑定姿势的乘法:
"反向绑定姿势"基本上"撤消"已在其绑定姿势中应用于模型的任何转换.
考虑如下:如果你将单位矩阵应用于模型中的每个关节,那么你将得到的是绑定姿势中的模型(你可以通过发送一个填充了身份矩阵的骨架来尝试这个.如果结果是什么结果姿势,然后你正在做对了).
如果你将绑定姿势矩阵(uninverted)应用到模型中的每个关节,那么你将得到的是意大利面,因为你将应用绑定姿势两次!
因此,要修复意大利面条模型,只需通过反向绑定姿势将得到的关节变换相乘,即可"撤消"已应用于模型的变换.
我希望这有点清楚......
老实说,这篇文章有点完全可以解决.看起来反向绑定姿势矩阵用于将顶点变换到骨骼的局部坐标系.
这是必要的,因为骨骼的变换是局部的(相对于它们的父关节).因此,为了设置顶点的动画,您必须将其转换为骨骼的局部坐标系,计算骨骼的局部变换并将其转换回世界系统.
| 归档时间: |
|
| 查看次数: |
7946 次 |
| 最近记录: |