什么是Tone Mapping

Tone Mapping翻译过来是色调映射,其作用是把大范围HDR的颜色,映射为小范围的LDR颜色,以便显示器可以正常显示。

显示器所能显示的颜色范围,小于真实世界的颜色范围。

下图是Tone Mapping前后的对比。

在UE4中,Tone Mapping是在后处理阶段,正常渲染之后进行的。

UE4中Tone Mapping前后效果对比

做了一个纸面的效果,Tone Mapping前后色调非常不同。

这是一个后处理材质,blendable Location选项不同造成的区别。

第一张图是Before Tonemapping,第二张图(下称图B)是After Tonemapping。

颜色确实发生了很大的变化。实际上,所采用的颜色是:

在这个截图的右上角,可以看到颜色跟Before Tonemapping是一样的。

那如何在Before Tonemapping的情况下,达到图B的效果呢?

把颜色调整深一些就可以了,是吗?我们试试。

Before Tonemapping达到AfterTonemapping的效果

先调整一下颜色,把颜色改深一些:

然后效果现在是这样:

只是颜色比较像了,但是效果差别好大。

图B的效果,纸的纹路更深。

由此可见,Tonemapping的影响是很大的,不能简单的通过调整颜色达到。

应该尽量使用Before Tonemapping,因为跟材质编辑器预览的效果是一样的。

最终尝试了一种办法,为了让纸的纹路更深,把纸的mask进行了power运算。这是一种增加对比度的手段,效果跟CheepContrast还不一样。

跟图B对比了一下,还是觉得图B的效果更好一些。。可能是先入为主的原因。不过也差不太多了。

如果模拟一下Tonemapping的运算,肯定可以达到跟AfterTonemapping一样的效果。这个有机会再尝试吧。