ue4中的像素卡通渲染偏色问题和色彩校正理论

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shenmifangke/article/details/52149746
unity和ue4中都有线性颜色和非线性颜色的问题
可以先看我以前unity的内容http://blog.csdn.net/shenmifangke/article/details/50523558
这次是在ue4的基础上进一步加深对这些概念的理解和应用

有时候我们需要导出纯色的时候就会发现ue4导出的图片偏灰,或者偏暗,
这个其实不仅是材质问题,而是包括了摄像机设置和工程设置多方面原因造成的偏色问题。
众所周知,ue4在真实感渲染的地方有很强的效果,因为不像unity,ue4自带了很多效果,包括hdr bloom等等
这使得用ue4做出真实效果根本需要什么人为设置,但这也让ue4在处理非真实感渲染或者像素和卡通游戏渲染的时候容易出现校色问题




图为设置纯绿色在ue4里面偏暗的问题

我们先讨论下如何去掉全部ue4自带的效果
包括hdr,tonemapping等等



关于ue4中的颜色校正,颜色通常是通过gamma校正后才输出的,

0 去掉编辑器里的效果

关于编辑器里关闭这个校正,首先可以直接通过把Scalability Reference里面的Post Processing减少为最低的方式来解决,但是这个同时会影响其他颜色校正
https://docs.unrealengine.com/latest/INT/Engine/Performance/Scalability/ScalabilityReference/


1去掉运行时默认效果(除了gamma校正以外自带的效果,比如bloom之类

可以通过自己设置后处理块来解决

https://docs.unrealengine.com/latest/INT/Resources/ContentExamples/PostProcessing/1_1/
https://docs.unrealengine.com/latest/INT/Engine/UI/ProjectSettings/

https://answers.unrealengine.com/questions/147462/how-do-i-disable-all-post-processes-entirely.html

2去掉运行时tonemapping

当然还有种方式也是去掉颜色校正的,但同样会对画面产生影响,这个就是project setting里面rendering里面Mobile 里面的Mobile HDR,这里勾去掉后,会发现场景中的颜色会很正常
另外贴图也是有gamma校正的,但是你可以去掉它,会发现颜色还是不对,因为不光是输入图片的时候有颜色校正,输出的时候还有一次校正,如果本来就是纯色,但是发现放在材质后不纯了,可以改rendering里面的Mobile hdr,改了后重启工程就可以了,虽然会损失hdr效果
如果不想图片本身进行矫正,你可以简单加上一个power,可以反校正回来一些
这个是tonemapper造成的偏色
https://answers.unrealengine.com/questions/29644/how-can-i-remove-tonemapping-in-play-mode.html?sort=oldest
https://answers.unrealengine.com/questions/44088/gammatone-washing-out-image-how-to-fix-1.html



原因
Tonemapping在ue4里面的作用是把HDR颜色转换到LDR颜色(低动态范围 被显示器限制而亮度最大不能超过白色)
而eye adaptation的作用是从很亮的地方走到很暗的地方会像眼睛自适应一样看清暗的地方,不同于Tonemapping,这个作用是在不同的亮度环境归一化HDR
srgb则是一种可显示色彩的色域,不同于线性颜色(linear RGB),这种色域的图片一般用于输入和输出,而不是像线性颜色一样用于中间过程处理(比如图片颜色透明度的叠加计算等等),srgb是一种对线性颜色的曲线校正,使可分辨颜色分布在更符合人眼特征的范围内,从而画面可以看起来更生动
gamma校正一般是对显示器来说的,Tonemapping,gamma等都可以说是一种对比度(contrast)的校正,不同的是曲线是不一样的,当然有些srgb转换和最终输出中也涉及gamma校正,这也是一个挺广义的词

自适应hdr眼睛效果可以通过设置新的后处理块或者摄像机上设置eye adaptation解决,但是tonemaping只能通过关闭rendering里面Mobile 里面的Mobile HDR来实现
这里ue4有个不好的地方就是,如果材质是无光照模式,实际上最终输出还是受到tonemaping效果的影响,没有显示的关闭tonemaping的好方法。




另外补充下ps里关于srgb的内容,因为大多数游戏等的素材还是通过ps出图的

PS里的色彩都是以编辑-颜色设置里面的设置显示,所以当Adobe RGB的图片在PS编辑完成后,保存出来的图片显示的效果可能都是不一样的,为了和屏幕的颜色统一最好还是选择显示器的rgb(一般质量的都是srgb色彩空间)
并在导出图片的时候勾选srgb,可以统一色彩



下面说一下使用srgb的原因
一般看图软件,浏览器或者打印机等只支持SRGB,甚至windows PC的色域也是如此,并没有在广色域显示图片。

ps导出的图片会更灰或者更鲜艳,或者其他饱和度问题,所以需要统一成srgb可以看到更好的颜色效果。


当然特殊打印的时候比如CMYK分色打印的时候用adobe rgb(argb   里面的a不是alpha通道注意)比较好,因为argb有更广的色域,但是如果是一般打印srgb更通用,出错几率小,和显示图片更一致。

另外从数值角度来看,虽然adobe rgb和srgb都是单个通道0~255的范围,但是这个范围内所代表色域是不同的,也就是说argb所在色域更大,而srgb则较小。


展开阅读全文

没有更多推荐了,返回首页