Version: Unity 6.0 (6000.0)
语言 : 中文
HDR
URP 中的 HDR 输出调试视图

URP 中的 HDR 输出

与标准清晰度内容相比,高动态范围内容具有更宽的色域和更大的亮度范围。

URP 可以为支持该功能的显示器输出__ HDR__高动态范围
See in Glossary
内容。

注意:必须将 HDR 输出与线性颜色空间结合使用。有关 Unity 中颜色空间的更多信息,请参阅颜色空间

了解 HDR 输出实现

Unity 的 HDR 输出分为以下步骤,这些步骤始终按以下顺序进行:

  1. 启用色调映射
  2. 传输函数

启用色调映射

色调映射是 HDR 输出过程的第一步。在此步骤中,Unity 根据目标显示器的动态范围来平衡场景的曝光和色调。动态范围由以下属性决定:

  • 最小亮度
  • 最大亮度
  • 纸白色亮度

有关这些属性的更多信息,请参阅重要色调映射值

同时,Unity 会执行颜色空间转换。Unity 将颜色从默认的 Rec.709 颜色空间转换为目标显示器的颜色空间。这会将场景中的颜色映射到目标显示器中更宽的色域,并确保 Unity 利用显示器上可用的全色域。

有关更多信息,请参阅 URP 中的 HDR 色调映射配置 HDR 色调映射设置

传输函数

HDR 输出的第二步是传递函数。传输函数将渲染过程的输出转换为指定显示器的亮度级别。Unity 为显示器确定正确的传输函数,并根据显示器的预期标准使用此函数对输出进行编码。这样使得 Unity 能够为伽马使用正确的精度级别,并在目标显示屏上创建准确的曝光级别。

URP 中的 HDR 色调映射

启用允许 HDR 显示输出后,您必须为 HDR 输入配置色调映射设置。

为了有效配置这些设置,您需要了解与色调映射相关的某些值如何确定 HDR 输出的视觉特征。

重要的色调映射值

要正确利用 HDR 显示器的功能,您的色调映射配置必须考虑目标显示器的功能,特别是这三个值(以尼特为单位):

  • 支持的最低亮度
  • 支持的最大亮度
  • 纸白值:该值代表显示器上纸白色表面的亮度,它决定了显示器的整体亮度。

注意:低动态范围 (LDR) 和高动态范围 (HDR) 内容在具有相同纸白值的显示器上显示的亮度不一样。这是因为显示器对低动态范围内容应用了额外的处理,从而提高了其亮度级别。因此,最佳实践是为您的应用实施校准菜单。

可用的用户界面依赖于准确的纸白值

Unlit 材质不会响应光照变化,因此将 Unlit 材质用于用户界面是标准做法。当不专门针对 HDR 显示器时,无照明材质渲染的计算将亮度定义为 0 到 1 之间的值。在这种情况下,值 1 对应于白色,值 0 对应于黑色。

然而,在 HDR 模式下,URP 使用纸白色值来确定无光照材质的亮度。这是因为 HDR 值可能超出 0 到 1 的范围。

因此,纸白值决定了 HDR 模式下__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
元素的亮度,尤其是白色元素,其亮度与纸白值相匹配。

配置 HDR 色调映射设置

可以在色调映射体积组件设置中选择和调整色调映射模式。还可以使用脚本调整 HDR 色调映射配置的某些方面。有关这方面的更多信息,请参阅 HDROutputSettings API

启用允许 HDR 显示输出后,HDR 色调映射选项将在音量组件中可见。

色调映射

URP 提供两种色调映射模式:中性ACES。每种色调映射模式都有一些独特的属性。

  • 中性模式特别适合您不希望色调映射器对内容进行颜色分级的情况。
  • ACES模式使用适用于故事片的 ACES 参考颜色空间。它产生电影般的对比效果。

有关这些模式的更多信息,请参阅色调映射体积覆盖参考的 HDR 输出部分

HDROutputSettings API

HDROutputSettings API 可以启用和禁用 HDR 模式,以及查询某些值(例如纸白)。

这些值也会列在渲染调试器的 HDR 输出显示表中。要访问该表,请导航到 Window > 分析 (Analysis) > 渲染管线调试器 (Render Pipeline Debugger) > 渲染 (Rendering) > HDR 输出 (HDR Output)。

将屏幕外渲染与 HDR 输出结合使用

使用屏幕外渲染技术时,并非场景中的所有相机都直接输出到显示器,例如当 Unity 将输出渲染到渲染纹理时。在这些情况下,请在渲染后期处理之前使用相机的输出。

Unity 不会对使用屏幕外渲染技术的相机的输出应用 HDR 输出处理。这样可以防止 HDR 输出处理两次应用于相机的输出。

启用 HDR 输出时使用标准动态范围 (SDR) 渲染

HDR 输出依赖于 HDR 渲染以正确的格式为色调映射和颜色编码提供像素值。HDR 色调映射后的值超过 1(以尼特为单位)。这与像素值介于 0 和 1 之间的 SDR 渲染不同。因此,将 SDR 渲染与 HDR 输出结合使用可能会导致渲染的图像看起来曝光不足或过饱和。

启用 HDR 输出后,可以根据每个相机的情况使用 SDR 渲染,这对于仅渲染无光照材质的相机非常有用,例如,用于小型贴图渲染。但是,将 SDR 渲染与 HDR 输出结合使用会面临一些限制。

为了确保在使用 SDR 渲染与 HDR 输出时正确渲染,必须避免任何发生在后期处理之后的渲染通道。这包括 URP 的内置效果,可在后期处理之后插入渲染通道。因此,使用 HDR 输出的 SDR 渲染与以下功能不兼容:

2D 渲染器

要将 SDR 渲染与 2D 渲染器上的 HDR 输出结合使用,必须确保关闭后期处理。

平台兼容性

URP 仅支持以下平台上的 HDR 输出:

  • 采用 DirectX 11、DirectX 12 或 Vulkan 的 Windows
  • 使用 Metal 的 MacOS 设备
  • iOS 16+ 设备
  • 游戏主机
  • 支持 HDR 的__ XR__虚拟现实(VR)、增强现实(AR)和混合现实(MR)应用的泛指术语。支持这些形式的交互式应用程序的设备可被称为 XR 设备。更多信息
    See in Glossary
    设备
  • 使用 Vulkan 和 GLES 的 Android 设备

注意:DirectX 11 仅支持播放器中的 HDR 输出,不支持编辑器中的 HDR 输出。

HDR
URP 中的 HDR 输出调试视图