骨骼动画中的顶点变换过程详解

本文详细解析了骨骼动画中顶点变换的过程,通过结合Maya软件实例,阐述了骨骼空间变换、矩阵应用及顶点坐标的计算方法。重点介绍了在Rigged Bone System(RBS)下,如何通过旋转骨骼影响顶点位置,以及由此产生的坐标变化。通过具体案例分析,揭示了在多骨骼关联场景下可能出现的极端情况及其解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在研究过OGRE骨骼动画的源码之后,对骨骼动画的理解有了进一步的加深,参考部分英文文献,我想在这节一步一步来解释一下骨骼动画中的顶点变换,帮助你更清晰的了解骨骼动画。如果对骨骼动画基本原理不是很理解,可以先参考《引擎技术中的骨骼动画蒙皮设计与实现》。下面我们结合Maya来谈谈LBS中的顶点变换过程。

     首先载入模型,skin之后我们可以分配给每个顶点bone assignment,下面我们来测试顶点的变形:

2011042819082035.png

     如上图,可知选中点在骨骼变换之前的V点的坐标是(6.419,17.606,-0.823),由于我们的骨骼比较特殊,在reference骨骼空间中,初始只有平移,没有旋转,因此我们可以定义2011042819121833.png为如下形式

 2011042819142925.png

    现在做下一步,把shoulder骨骼旋转180度,那么我们可以得到如下矩阵,即矩阵A:

2011042819170947.png

   由于是rigid蒙皮,所以V点只跟shoulder有关,所以可以得到变换后的坐标位置为:

2011042819211568.png

   展开得:

2011042819252629.png     

假设绕x周旋转的角度是180度,带入上式可得:

2011042819272058.png

带入相应的值,可以求出V点的坐标为(6.418,14.760,-1.890),得到的效果如下:

2011042819291453.png

对比V点变换前后的坐标,可以知道,V点的坐标又上变下了,这符合骨骼动画的旋转,当每个节点跟很多骨骼相关的时候,在混合的情况下,有可能会出现极端的情况,这就是cand-wrapper的由来.

转载于:https://www.cnblogs.com/bite_the_bullet/archive/2011/04/28/2032137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值