Unity:在渲染体素和性能方​​面需要帮助

Unity: Help needed with rendering voxels and performance

所以这是交易,我有一个被操纵的敌人,由相当多的体素组成。

当我 运行 游戏渲染模型时,由于需要渲染的对象数量,我的整体性能非常差。我该如何改进?

以下是我考虑过的事情: 只渲染我们实际可以看到的面孔, 或者可能使用某种 GPU 实例化?

无论如何,我想知道如何解决这样的问题。非常感谢任何帮助!

不知道您是如何在游戏中实际实现体素的(即每个体素由哪些组件组成以及您目前如何管理它们),很难提供具体的建议。

总的来说,有几点需要考虑:

  • 不朝向相机的面孔将不会 默认呈现。您可能想要调查的是 遮挡 剔除,但 因为你的角色在场景中不是静止的,所以你可能不会得到 性能大大提高。的代码 不断检查 objects 是否被遮挡可能最终会产生成本 CPU 多于不实施它。
  • 渲染可能不是您实际的性能瓶颈。如果您的每个体素在每次更新时都在做一些工作(例如碰撞检测),那么这将比渲染 objects 更严重地影响您的性能,尤其是对于立方体素。您需要使用 Profiler 来计算。
  • 你需要考虑你是否真的需要所有这些体素一直在场景中,或者你是否可以用单个游戏对象替换它们,直到你需要与它们交互,然后将它们作为需要。例如,您可以将上臂替换为反映 body 部分总体素形状的网格。然后,当该部分被拍摄时,例如,您可以检测碰撞点并在该点周围实例化必要的体素以根据需要做出反应,然后重建手臂网格以反映更改后的形状。

Unity 的 Data-oriented Technology Stack (DOTS) 功能可能也值得研究,尽管对于这种情况来说这可能有点矫枉过正。