为了在屏幕上绘制几何图形,Unity 会向图形 API 发出绘制调用。绘制调用会告诉图形 API 绘制什么以及如何绘制。每个绘制调用都包含图形 API 在屏幕上绘制所需的所有信息,例如有关纹理、着色器在 GPU 上运行的程序。 更多信息
参见 术语表 和缓冲区的信息。绘制调用可能会占用大量资源,但通常绘制调用的准备工作比绘制调用本身更占用资源。
为了准备绘制调用,CPU 会设置资源并在 GPU 上更改内部设置。这些设置统称为渲染状态。渲染状态的更改(例如切换到不同的材质)是图形 API 执行的最占用资源的操作。
由于渲染状态更改会占用大量资源,因此对其进行优化非常重要。优化渲染状态更改的主要方法是减少更改次数。有两种方法可以做到这一点
优化绘制调用和渲染状态更改对应用程序有很多好处。主要是提高帧速率,但也
您可以在同一个场景中使用多种绘制调用优化方法,但请注意,Unity 会按照特定顺序优先考虑绘制调用优化方法。如果将游戏对象标记为使用多种绘制调用优化方法,Unity 将使用优先级最高的方法。
唯一的例外是通用渲染管线一系列操作,这些操作获取场景的内容并在屏幕上显示它们。Unity 允许您从预构建的渲染管线中进行选择,或者编写自己的渲染管线。 更多信息
参见 术语表 (URP) 或高清渲染管线 (HDRP) 中的SRP 批处理程序。当您使用 SRP 批处理程序时,Unity 还支持对与 SRP 批处理程序兼容的游戏对象进行静态批处理Unity 用于在屏幕上绘制游戏对象的技巧,该技巧将静态(非移动)游戏对象组合成大型网格,并以更快的速度渲染它们。 更多信息
参见 术语表。Unity 按以下顺序优先考虑绘制调用优化
如果将游戏对象标记为静态批处理,并且 Unity 成功对其进行批处理,则 Unity 会禁用该游戏对象的 GPU 实例化,即使渲染器使用实例化着色器也是如此。发生这种情况时,检查器一个 Unity 窗口,显示有关当前选定的游戏对象、资产或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表窗口会显示一条警告消息,建议您禁用静态批处理。类似地,如果 Unity 可以对网格Unity 的主要图形基元。网格构成了 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。 更多信息
参见 术语表使用 GPU 实例化,则 Unity 会禁用该网格的动态批处理一个自动的 Unity 过程,尝试将多个网格渲染为单个网格,以优化图形性能。该技术在 CPU 上转换所有游戏对象顶点,并将许多类似顶点组合在一起。 更多信息
参见 术语表。