性能优化——骨骼动画原理

蒙皮:把模型顶点和骨骼做一个对应关系,这就是蒙皮权重。蒙皮要做的事情,是指定某个顶点受到了多少根骨骼的影响,在运动的时候,顶点根据权重的百分比来跟随骨骼运动。

举个栗子:比如一个顶点收到两个跟骨骼的影响,第一根骨骼的权重是30%,第二根骨骼的权重是70%。在想跟骨骼同时移动的时候,第一根骨骼想左移动10米,第二根骨骼向右移动10米,假若右使是正方向,那么这个顶点实际移动的位置应该是-10*0.3+10*0.7=4,也就是最终向右移动了4米,实际计算中不会简单乘百分比,而是会用矩阵来计算

骨骼的父子关系:每一个子级的骨骼,先要获取到他的父级,通过矩阵来转换局部坐标系,算出子级相对父级的局部位移旋转缩放,再将坐标系转换到世界坐标系,得到子级相对父级的位移旋转缩放再世界坐标的实际位置,最终得到动画中这跟骨骼的实际坐标,得到最终再动画中这跟子骨骼的实际坐标。如果一个角色的骨骼数量越多,嵌套的父子关系越复杂,那么转换坐标系计算的过程就越复杂,消耗cpu运算越多

骨骼动画播放的一些效率问题:

1.模型本身的顶点数:

从蒙皮权重的角度看出,如果顶点越多,在播放时需要计算每个顶点最终坐标的次数就越多。

2.模型骨骼的数量和复杂程度

从骨骼父子关系的计算可以知道,骨骼越多,计算矩阵坐标系的次数就越多

点和骨骼做一个对应关系,这就是蒙皮权重。蒙皮要做的事情,是指定某个顶点受到了多少根骨骼的影响,在运动的时候,顶点根据权重的百分比来跟随骨骼运动。

 

举个栗子:比如一个顶点收到两个跟骨骼的影响,第一根骨骼的权重是30%,第二根骨骼的权重是70%。在想跟骨骼同时移动的时候,第一根骨骼想左移动10米,第二根骨骼向右移动10米,假若右使是正方向,那么这个顶点实际移动的位置应该是-10*0.3+10*0.7=4,也就是最终向右移动了4米,实际计算中不会简单乘百分比,而是会用矩阵来

 

骨骼的父子关系:每一个子级的骨骼,先要获取到他的父级,通过矩阵来转换局部坐标系,算出子级相对父级的局部位移旋转缩放,再将坐标系转换到世界坐标系,得到子级相对父级的位移旋转缩放再世界坐标的实际位置,最终得到动画中这跟骨骼的实际坐标,得到最终再动画中这跟子骨骼的实际坐标。如果一个角色的骨骼数量越多,嵌套的父子关系越复杂,那么转换坐标系计算的过程就越复杂,消耗cpu运算

 

骨骼动画播放的一些效率问

 

1.模型本身的顶点

 

从蒙皮权重的角度看出,如果顶点越多,在播放时需要计算每个顶点最终坐标的次数就越

 

2.模型骨骼的数量和复杂

 

从骨骼父子关系的计算可以知道,骨骼越多,计算矩阵坐标系的次数就

 

https://www.freesion.com/article/1799405585/   Unity动画优化:Optimize Game Objects   这个讲的挺清楚的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值