computeSkinning
computeSkinning
一个辅助函数,用于在 GPU 上执行骨骼蒙皮计算,并将动画后的顶点位置作为一个可复用的节点暴露出来,从而解开骨骼动画的“黑箱”。
核心优势
核心价值在于将蒙皮计算与最终渲染解耦。这使得动画结果可以作为数据源,与其他节点(如噪声、扭曲)自由组合,或用于驱动物理特效,极大地提升了着色器的灵活性和组合性。
常见用途
将特效(如粒子、闪电)精确附着在播放动画的模型表面。
根据动画后顶点的位置触发次级动态效果(如溅起灰尘)。
在标准骨骼动画基础上叠加程序化变形(如弹性、融化效果)。
将骨骼权重等调试信息可视化为颜色。
如何调整
它的调整并非通过函数参数,而是通过“后处理”其输出。例如,将 `computeSkinning()` 的输出结果与一个噪声节点相加,并用一个 uniform 变量控制噪声强度,可以实现角色在保持动画姿态的同时逐渐“消散”或“石化”的视觉效果。
代码示例
1// 获取骨骼动画计算后的顶点位置
2const animatedPosition = computeSkinning( skinnedMesh ).position;
3
4// 在动画基础上添加一个消散效果
5const finalPosition = animatedPosition.add( disintegrationNoise );