4

互联网上的大多数资源声称,在值可以任意大(在类型表示限制内)的高动态范围中执行计算后,必须将结果从 HDR 转换为标准动态范围,其中值在 [0, 1] 因为这是显示设备可表示的范围。

通常使用色调映射器,如 ACES 风格的电影色调映射器,在 PBR 渲染中特别流行。之所以如此,是因为无论如何这些值都会被限制在 [0, 1] 范围内,并且任何高于 1 的东西都会被忽略,从而导致既不现实也不令人愉悦的结果……或者他们会这样做吗?

我最近偶然发现了以下 NVIDIA 文章:https ://developer.nvidia.com/rendering-game-hdr-display 。似乎通过使用 NVIDIA 和 Windows 特定的 API,可以输出 HDR 值,以利用某些显示器的功能来显示非常大的色域和亮度。

我想知道为什么没有真正谈论这个。据我所知,即使是UnityUnreal等大型游戏引擎也不使用这种技术,而是使用色调映射器来输出 SDR 图像。

为什么会这样?HDR 输出是否仍处于技术演示阶段?是否没有能够显示它的消费级显示器(尽管许多显示器开始宣传为“HDR 显示器”)?还是我完全理解错了,没有 HDR 输出之类的东西,这只是愚人节的玩笑?

编辑:如果可能的话,我还希望了解有关使用 HDR 输出的跨平台方法的一些信息,尤其是在 OpenGL 中。

4

1 回答 1

2

HDR 输出是否仍处于技术演示阶段?

什么??不它不是。所有蓝光和 AAA 游戏现在都是原生 HDR,包括游戏 PQ 传输中良好的 10 位纹理。

是否有能够显示它的非消费级显示器

LG C9、CX、C1就是这样的显示器,经过内部3DLUT校准后几乎可以参考。

还是我完全理解错了,没有 HDR 输出之类的东西,这只是愚人节的玩笑?

HDR 在不同的显示器上看起来会有所不同,这是标准中规定的。这就是色调映射技术

尽可能使用 HDR 输出的方法,尤其是在 OpenGL 中。

最好的方法是 Vulkan 和 DirectX。但即使是 Linux 现在也得到了全部支持。它更像是一个驱动程序。为此需要驱动程序,这是最复杂的部分。

于 2021-05-09T10:32:35.537 回答