Version: 6000.3
语言: 中文
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显示输出(Allow HDR Display Output) 后,必须为HDR输入配置色调映射设置。

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

重要的色调映射值

要正确利用 HDR 显示器的功能,您的色调映射将图像的 HDR 值重新映射到适合在屏幕上显示的范围内的过程。更多信息
请参阅术语表
配置必须考虑目标显示器的功能,特别是以下三个值(以 NIT 为单位):

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

【注】“低动态范围 (LDR)”和“高动态范围 (HDR)”内容在具有相同“白纸”值的显示器上显示的亮度并不相同。这是因为显示器对低动态范围内容应用了额外的处理,从而提高了其亮度级别。因此,最佳做法是为您的应用程序实现校准菜单。

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

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

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

因此,纸白值决定了 HDR 模式下 UI 元素的亮度,尤其是亮度与纸白值匹配的白色元素。

配置 HDR 色调映射设置

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

启用 允许HDR显示输出(Allow HDR Display Output) 后,HDR 色调映射选项将在 体积(Volume) 组件中可见。

色调映射

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

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

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

The HDROutputSettings API

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

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

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

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

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

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

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

启用HDR输出后,你可以按摄像机使用SDR渲染,这对于仅渲染无光照材质的摄像机非常有用,例如,用于小地图渲染。但是,将SDR渲染与HDR输出一起使用会带来一些限制。

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

2D 渲染器

要在2D渲染器上将SDR渲染与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输出。
  • DirectX 11 不支持独占全屏模式下的 HDR 输出。对于 DirectX 11 上的 HDR 输出,请改用无边框全屏模式
HDR的
URP 中的 HDR 输出调试视图