视频源自一个编辑器中,许多调试选项和 gizmos 都被开启。
如何实现VAT
- 纹理高度是从帧数中获取的,纹理宽度是从顶点数中获取的。
- 使用TextureFormat.RGBAHalf创建一个Texture2D,它存储了3D的局部坐标(x, y, z)在颜色通道(R, G, B)中。
- 然后遍历每一帧:
- 样本和变形的骨骼网格状态到一个临时网格中。
- 从baked网格中读取变形的顶点坐标并写入到纹理中。
如何实现裁剪
使用基于可见性和距离的裁剪API来实现多个LOD
- LOD 0: 近
- 可视化:全身骨骼网格是激活的。
- CPU状态:标准的Unity动画组件是激活的,提供全身骨骼的可靠性。
- 运行:中央的Job-based运动。
- LOD 1: 中
- 可视化:VAT网格使用一个实例化着色器材质激活。
- CPU状态:昂贵的骨骼动画组件是禁用,去除了动画评估和骨骼矩阵皮肤的额外开销。
- 同步:材质属性是同步到匹配当前动画状态(例如,切换从“移动”到“攻击”)。
- LOD 2: 远
- 可视化:高度简化的Impostor网格是激活的。
- LOD 3: 被裁剪
- 可视化:所有可视化模型都被禁用。
- CPU状态:动画组件是禁用。
评论 (0)