在unity引擎中的工程怎样适配HDR电视

Unity现在还不支持, 只有一个feature request: Unity Feedback - HDR monitor support
如果想了解原理, 可以参考NVIDIA的系列文章: HDR

■网友
以前的HDR特效和现在说的HDR电视,是完全两个概念。以前说的是通过tone mapping,把HDR变成LDR显示出来。现在说的是直接输出HDR的信号。在Windows上这需要v1703之后才能很好地支持。unity做没做就不知道了。

■网友
LDR显示器 接受的是 LDR输入(比如一个RGB24的整数帧缓冲区)
所以渲染的时候 会先把结果渲染到一个 HDR渲染目标(比如一个浮点纹理)
然后通过后处理阶段做toon mapping 把HDR图像映射为LDR图像
然后交给显示器呈现
HDR显示器 本身就接受 HDR输入
所以就不需要自己做toon mapping了
直接把HDR图像交给显示器呈现就是了
toon mapping的任务就交给显示器自己了
(当然也有一些情况是 显卡做了toon mapping 把普通显示器伪装成HDR显示器 其实这种做法应该是之后普遍的做法 因为如果显示器直接接受HDR信号 需要额外的传输带宽 而且显示器需要额外的硬件负责toon mapping 如果交给显卡处理为LDR后 提交给显示器 显示器只需要普通的LDR显示器就行了 缺点是显卡仍需要做一个toon mapping的后处理 而且等于toon mapping过程变成固定功能了 自由度下降 显示器厂商因为最近也没有什么噱头 所以自说自话提出了所谓的HDR显示器 把这个概念炒热之后 显卡厂商也不得不跟进 实际上HDR显示器并不会带来更好的画质 HDR显示器和LDR显示器的区别 仅仅在于toon mapping 到底是应用程序自己做呢 还是显卡驱动或者显示器做)
实现上就是在建立呈现帧缓冲区的时候 选择HDR格式就行了
Unity支不支持我不知道
【在unity引擎中的工程怎样适配HDR电视】 但理论上 支持起来不困难

■网友
Unity 还没支持呢,用UE4,吧!至于支持hdr显示器的工作难度,与HDR的好处。智者见智。我可以给个参考。像龚那样级别的,把所有显示器都支持完全正确,估计起码要一个半月,期间还有有各硬件厂商的鼎力支持


    推荐阅读