优化窗口 - MRTK2

MRTK Optimize Window 是一个实用工具,有助于在配置混合现实项目的过程中进行自动执行和通知,以便在 Unity 中获得最佳性能。 此工具通常侧重于呈现配置,当设置为正确预设时可以节省数毫秒的处理时间。

注意

可以通过从 Unity 编辑器中的顶栏菜单导航到“混合现实”>“实用工具”>“Optimize Window”来打开“Optimize Window”。

Active Build Target 是项目当前针对的生成平台,用于编译。

Performance Target 指示优化工具针对哪种设备终结点。

  • AR 头戴显示设备是移动类设备,例如 HoloLens
  • 独立 VR 是移动类设备,例如 Oculus Go 或 Quest
  • 受限 VR 是电脑供电的设备,例如 Samsung Odyssey、Oculus Rift 或 HTC Vive,等等。

MRTK Optimize Window Performance Target

设置优化

“设置优化”选项卡介绍了 Unity 项目的一些重要呈现配置。 本部分可帮助你实现操作的自动执行,并通知你应更改哪些设置来获得最佳执行结果。

绿色复选图标表示已在项目/场景中为此特定设置配置了最优值。 黄色警告图标指示可以改进当前配置。 单击给定部分的关联按钮会将 Unity 项目/场景中的该设置自动配置为更优的值。

MRTK Optimize Window Settings

单通道实例化渲染

单通道实例化渲染是混合现实应用程序的最有效渲染路径。 此配置可确保仅为每个眼睛执行一次渲染管道,并确保跨两个眼睛实例化绘制调用。

深度缓冲区共享

若要改善全息影像稳定性,开发人员可以共享应用程序的深度缓冲区,该缓冲区提供的平台信息涉及要在所渲染场景中的什么位置稳定什么全息影像。

深度缓冲区格式

此外,对于 AR 头戴显示设备,在启用深度缓冲区共享时,建议使用 16 位深度格式(与 24 位相比)。 这意味着降低精度,但在性能上会获得补偿。 如果由于在计算像素的深度时精度较低而出现 z 竞争现象,则建议将远的剪辑平面移近相机(例如:将距离从 1000 米缩短到 50 米)。

注意

如果使用 16 位深度格式,模具缓冲区所需效果将不起作用,因为在此设置中,Unity 不会创建模具缓冲区。 相反,选择 24 位深度格式通常会创建 8 位模具缓冲区(如果适用于终结点图形平台)

如果使用需要模具缓冲区的掩码组件,请考虑改用 RectMask2D,它不需要使用模具缓冲区,因此可与 16 位深度格式一起使用。

实时全局照明

Unity 中的实时全局照明可提供出色的美化结果,但成本非常高。 全局照明灯光在混合现实中非常昂贵,因此建议在开发中禁用此功能。

注意

Unity 中的全局照明设置是根据场景设置的,而不是在整个项目中一次性设置的。

场景分析

“场景分析”选项卡旨在告知开发人员当前场景中哪些元素可能会对性能影响最大。

MRTK Optimize Window Settings scene Analysis

照明分析

此部分将检查场景中当前的灯光数量,以及任何应禁用阴影的灯光。 阴影投射是一种非常昂贵的操作。

多边形计数分析

该工具还提供多边形计数统计信息。 它对于快速标识给定场景中具有最大多边形复杂度的 GameObject 很有帮助,可用于对该对象进行优化。

Unity UI 光线投射分析

图形光线投射操作在 MRTK 中按指针执行,以确定是否有任何 Unity UI 元素处于焦点。 这些光线投射的开销可能很高。为了提高性能,应禁止将不需要在结果中返回的 UI 元素用作光线投射目标。 每个图形元素都有 Graphic.raycastTarget 属性。 此工具会搜索启用了此属性的文本 UI 元素,因此可以将其禁用。

着色器分析

Unity 标准着色器可以为游戏产生极高质量的视觉效果,但通常不是很适合混合现实应用程序的性能需求,尤其因为此类应用程序通常是 GPU 绑定的。 因此,建议开发人员使用 MRTK 标准着色器来平衡美观和图形特征与性能。

“着色器分析”选项卡使用 Unity 标准着色器扫描当前项目的 Asset 文件夹来获取材料,或者会在需要的情况下使用所有材料,不使用混合现实工具包提供的着色器。 一旦发现材料,开发人员就可以将其全部转换,或使用适当的按钮单独进行转换。

MRTK Optimize Window Settings shader analysis

另请参阅