互联网上的大多数资源声称,在值可以任意大(在类型表示限制内)的高动态范围中执行计算后,必须将结果从 HDR 转换为标准动态范围,其中值在 [0, 1] 因为这是显示设备可表示的范围。
通常使用色调映射器,如 ACES 风格的电影色调映射器,在 PBR 渲染中特别流行。之所以如此,是因为无论如何这些值都会被限制在 [0, 1] 范围内,并且任何高于 1 的东西都会被忽略,从而导致既不现实也不令人愉悦的结果……或者他们会这样做吗?
我最近偶然发现了以下 NVIDIA 文章:https ://developer.nvidia.com/rendering-game-hdr-display 。似乎通过使用 NVIDIA 和 Windows 特定的 API,可以输出 HDR 值,以利用某些显示器的功能来显示非常大的色域和亮度。
我想知道为什么没有真正谈论这个。据我所知,即使是Unity和Unreal等大型游戏引擎也不使用这种技术,而是使用色调映射器来输出 SDR 图像。
为什么会这样?HDR 输出是否仍处于技术演示阶段?是否没有能够显示它的消费级显示器(尽管许多显示器开始宣传为“HDR 显示器”)?还是我完全理解错了,没有 HDR 输出之类的东西,这只是愚人节的玩笑?
编辑:如果可能的话,我还希望了解有关使用 HDR 输出的跨平台方法的一些信息,尤其是在 OpenGL 中。