大家好!我是 Athan,VOLT Survivors 的开发者之一(https://store.steampowered.com/app/4934810/VOLT_Survivors/)。(Jef 仍然在世,现在轮到我了 😤)

上次我们讨论过,重新工作我们的群体渲染让我们在屏幕上呈现出数千个敌人。从那以后,我们一直在研究这些群体如何在动画中呈现。在视频中,你可以看到无人机从 1 变到 100 再到 625。

骨骼网格在数量较少时工作良好,但当有数百个时,在 CPU 上为每个网格动画会迅速成为瓶颈。因此我们转向了 Vertex Animated Textures(VAT):动画被烘焙进纹理中,GPU 负责移动顶点。它成本低且可扩展。

基本 VAT 设置的缺点是无法在动画之间进行混合。当无人机从悬停切换到前进飞行时,它会直接跳转到新姿态。将这种情况乘以数百个无人机状态切换,整个画面会抖动。

于是我们让 VATs 可混合。每个无人机在 GPU 上实现从当前动画到下一个动画的交叉淡化。我们不直接混合最终的顶点位置,而是混合已烘焙的骨骼数据并在一次性骨骼化后再进行皮肤加权。第二个动画仅在短暂的交叉淡化期间被采样,其余时间与普通 VAT 的成本相同。

有了这些,我的笔记本电脑仍然爱我 😊❤️

如果你有任何问题,请在评论中告诉我!!