HDR 输出的当前状态

Current state of HDR output

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

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

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

我想知道为什么没有真正讨论这个问题。据我所知,甚至 Unity and Unreal 等大型游戏引擎也不使用此技术,而是使用色调映射器输出 SDR 图像。

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

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

Is HDR output still in the phase of tech demos?

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

are there non consumer-grade displays capable of displaying it

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

Or did I understand everything completely wrong and there is nothing such as HDR output and its all just an April Fools joke?

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

approach to use HDR output, if possible, especially in OpenGL.

最好的方法是 Vulkan 和 DirectX。但即使 Linux 现在也得到了所有支持。它更像是一个 driver 的东西。这个需要drivers,是最复杂的部分。