Unity 提供了各种高级 GPU 功能,这些功能使用实例化和遮挡剔除来显著减少绘制调用次数,并消除隐藏对象的渲染。这些功能协同工作,可在复杂场景中最大限度地提高 GPU 效率。
GPU 常驻抽屉
GPU Resident Drawer 会自动使用 GPU 实例化来减少绘制调用并释放 CPU 处理时间。此功能对于具有许多共享同一网格的物体的大型场景最为有效。
启用此功能
- 在 Unity 主菜单中,依次点击 Edit > Project Settings > Graphics。
- 在 Shader Stripping 部分中,将 Batch Renderer Group Variants 设置为 Keep All。
- 找到您的默认渲染流水线资源,也就是您的 URP 资源。
- 在项目中搜索相应素材资源。
- 右键点击相应素材资源,然后选择属性。
- 在 Renderer List 中,右键点击 Universal Renderer,然后选择 Properties。
- 将渲染路径设置为正向。
- 返回到 URP 资源,选择该资源,然后点击其中的三点状图标,并选择调试。
- 将 GPU Resident Drawer Mode 设置为 Instanced Drawing。
GPU 遮挡剔除
遮挡剔除使用 GPU 而不是 CPU 来排除隐藏在其他对象后面的对象。此功能在遮挡较多的场景(例如室内或密集环境)中效果最佳。
启用此功能
- 在 Unity 主菜单中,依次点击 Edit > Project Settings > Graphics。
- 启用 GPU 遮挡剔除。
- 选择 URP 标签页。
- 在 Render Graph 部分中,停用兼容模式(Render Graph 已停用)。
优化了缓冲区舍弃
此优化通过舍弃不必要的深度缓冲区数据并高效处理 MSAA 颜色缓冲区来提高性能,从而减少内存操作。
优势
- 消除了不必要的图形数据复制和移动。
- 加快所有情况下的 GPU 渲染速度。
启用此功能
- 在 Unity 主菜单中,依次点击 Edit > Project Settings。
- 展开 XR 插件管理部分,然后点击 OpenXR。
- 选择 Android 标签页。
- 选择 Android XR 特征组。
- 点击 Android XR 支持旁边的齿轮图标。
启用优化缓冲区舍弃 (Vulkan)。
停用从前往后渲染
从前往后渲染是一种渲染顺序实验,您可以在场景中尝试。与低分辨率 Z (LRZ) 等优化相结合时,它可能有助于提高存在显著遮挡的场景中的性能,其中背景对象使用昂贵的片段着色器。
不过,启用此设置也可能会降低性能。因此,建议您将其保留为默认设置(已停用)。