高动态范围 (HDR) 是一种技术,它可以生成比标准动态范围 (SDR) 图像具有更大亮度动态范围的图像,从而可以真实地描绘颜色和亮度。
在标准渲染中,像素计算机图像中最小的单元。像素大小取决于屏幕分辨率。像素照明是在每个屏幕像素处计算的。 更多信息
参见 术语表 的红色、绿色和蓝色值使用 0 到 1 之间的 8 位值存储,其中 0 表示零强度,1 表示显示设备的最大强度。这种有限的值范围不能准确地反映我们对现实生活中光的感知方式,并且当存在非常明亮或非常暗的元素时,会导致图像不真实。
在 HDR高动态范围
参见 术语表 渲染中,像素值使用浮点数存储。这允许更大的值范围,更准确地反映人眼感知颜色和亮度的方式。
在 Unity 中,您可以使用 HDR 图像进行内部渲染计算。此功能称为 HDR 渲染。启用 HDR 渲染后,Unity 将 场景场景包含游戏环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是在片段中设计和构建游戏。 更多信息
参见 术语表 渲染到 HDR 图像缓冲区,并使用该 HDR 图像执行渲染操作,例如 后期处理通过在图像显示在屏幕上之前应用滤镜和效果来改善产品视觉效果的过程。您可以使用后期处理效果来模拟物理相机和胶片属性,例如光晕和景深。 更多信息 后期处理,后期处理,后期处理
参见 术语表 效果。这意味着计算使用真实值进行,这可以导致更真实的结果。
在某些兼容的平台上,Unity 支持将该 HDR 图像发送到显示设备。此功能称为 HDR 输出。
HDR 提供了多种优点和缺点,在使用 HDR 之前应考虑这些优点和缺点,以确保它是正确的选择。
HDR 提供以下优点
HDR 提供以下缺点
有关 URP 中的 HDR 渲染和 HDR 输出的信息,请参阅 URP 中的 HDR 输出。
有关 HDRP 中的 HDR 渲染和 HDR 输出的信息,请参阅 HDRP 中的 HDR 输出。
有关可脚本化 渲染管线一系列操作,将场景的内容取出来并在屏幕上显示。Unity 允许您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表 URP 和 HDRP 中对 HDR 渲染和 HDR 输出的支持的任何其他信息,请参阅 渲染管线功能比较。
色调映射是将颜色值从一个范围映射到另一个范围的过程。使用 HDR 时,您必须使用色调映射来转换 HDR 图像缓冲区中的颜色,以便这些值处于显示设备可以处理的范围内。如果不使用色调映射,您可能会丢失图像中大量细节和颜色信息,尤其是在非常明亮的区域。
在使用 HDR 渲染和 SDR 输出时,您必须使用色调映射将 HDR 图像缓冲区转换为 SDR 图像以供显示。Unity 提供了色调映射后期处理效果,让您能够做到这一点:后期处理堆栈 V2 包、URP 集成的后期处理解决方案 和 HDRP 集成的后期处理解决方案 都包含色调映射效果。
在使用 HDR 渲染和 HDR 输出时,您可以:
创建您自己的色调映射解决方案,将 HDR 图像缓冲区直接转换为兼容的 HDR 格式以供显示
使用 Unity 的色调映射后期处理效果将 HDR 缓冲区转换为 SDR 图像(如上所示),然后使用 Unity 的自动输出色调映射将该 SDR 图像转换为合适的输出格式。有关 Unity 的自动输出色调映射的更多详细信息,请参阅 HDROutputSettings.automaticHDRTonemapping 的文档。
HDROutputSettings API 添加于 2020.1 NewIn20201