蒙皮:把模型顶点和骨骼做一个对应关系,这就是蒙皮权重。蒙皮要做的事情,是指定某个顶点受到了多少根骨骼的影响,在运动的时候,顶点根据权重的百分比来跟随骨骼运动。
举个栗子:比如一个顶点收到两个跟骨骼的影响,第一根骨骼的权重是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 这个讲的挺清楚的