版本:Unity 6 (6000.0)
语言:英语
HDR
URP 中的 HDR 输出调试视图

URP 中的 HDR 输出

高动态范围 内容比标准清晰度内容具有更广的颜色范围和更高的亮度范围。

URP 可以输出 HDR高动态范围
参见 术语表
内容,供支持该功能的显示器使用。

注意:您只能将 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 显示器的功能,您的 色调映射将图像的 HDR 值重新映射到适合在屏幕上显示的范围内的过程。 更多信息
参见 术语表
配置必须考虑到目标显示器的功能,尤其是这三个值(以尼特为单位)

  • 支持的最小亮度.
  • 支持的最大亮度.
  • 纸白值:此值表示显示器上表示的纸白表面的亮度,它决定了显示器的整体亮度。

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

可用的用户界面取决于准确的纸白值

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

但是,在 HDR 模式下,URP 会使用纸白值来确定非照明材质的亮度。这是因为 HDR 值可能超过 0 到 1 的范围。

因此,纸白值决定了 HDR 模式下 UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
参见 术语表
元素的亮度,尤其是白色元素的亮度,其亮度与纸白值相匹配。

配置 HDR 色调映射设置

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

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

色调映射

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

  • 中性 模式特别适用于您不希望色调映射器对内容进行颜色分级的情况。
  • ACES 模式使用 ACES 参考颜色空间,用于电影。它会产生一种电影化的、对比度高的效果。

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

HDROutputSettings API

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

这些值也列在渲染调试器上的 HDR 输出显示表中。要访问该表,请导航至 窗口 > 分析 > 渲染管道调试器 > 渲染 > HDR 输出

将离屏渲染与 HDR 输出一起使用

当您使用离屏渲染技术时,场景中并非所有摄像机都直接输出到显示器,例如,当 Unity 将输出渲染到 渲染纹理一种在运行时创建和更新的特殊纹理类型。要使用它们,首先创建一个新的渲染纹理,并指定其中一个摄像机渲染到该纹理中。然后,您可以在材质中像使用普通纹理一样使用渲染纹理。 更多信息
参见 术语表
时。在这些情况下,使用 摄像机一个组件,它创建场景中特定视点的图像。输出要么绘制到屏幕上,要么作为纹理捕获。 更多信息
参见 术语表
的输出,然后再渲染 后期处理在图像显示在屏幕上之前应用滤镜和效果以改善产品视觉效果的过程。您可以使用后期处理效果模拟物理相机和胶片属性,例如光晕和景深。 更多信息 后期处理, 后期处理, 后期处理
参见 术语表

Unity 不会对使用离屏渲染技术的摄像机的输出应用 HDR 输出处理。这可以防止对摄像机的输出应用两次 HDR 输出处理。

在启用 HDR 输出的情况下使用标准动态范围 (SDR) 渲染

HDR 输出依赖于 HDR 渲染,以便以正确的格式提供 像素计算机图像中最小的单位。像素大小取决于您的屏幕分辨率。像素照明是在每个屏幕像素上计算的。 更多信息
参见 术语表
值,以用于色调映射和颜色编码。HDR 色调映射后的值为尼特,超过 1。这与 SDR 渲染不同,在 SDR 渲染中,像素值介于 0 到 1 之间。因此,在启用 HDR 输出的情况下使用 SDR 渲染会导致渲染的图像看起来曝光不足或过饱和。

在启用 HDR 输出的情况下,您可以按摄像机为基础使用 SDR 渲染,这对于仅渲染非照明材质的摄像机很有用,例如,用于迷你地图渲染。但是,在启用 HDR 输出的情况下使用 SDR 渲染会带来一些限制。

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

2D 渲染器

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

平台兼容性

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

  • 使用 DirectX 11、DirectX 12 或 Vulkan 的 Windows
  • 使用 Metal 的 MacOS 设备
  • iOS 16+ 设备
  • 游戏主机
  • XR包含虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用程序的统称。支持这些形式的交互式应用程序的设备可以称为 XR 设备。 更多信息
    参见 术语表
    支持 HDR 的设备
  • 使用 Vulkan 和 GLES 的 Android 设备

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

HDR
URP 中的 HDR 输出调试视图