线性工作流程和gamma解释

来自:火星网

很多3D设计师会觉得这种观念十分令人困惑。因此他们觉得这没有太多意义,但是请相信我,这很有必要。

在线性工作流程下,灯光的计算和从渲染设置到后期处理的整个颜色的处理过程,都是正确的。如果你旨在的使你的渲染更具真实度,那么你就需要这么做。

线性工作流程和gamma解释

这是一个没有进行gamma矫正的图像例子。我们可以注意到灯光并没有充满于屋中,即使场景是用vray的GI渲染的。

线性工作流程和gamma解释

我们在渲染完成以后后期调整图像的gamma,灯光变得正确充满了屋子。但是问题是这结果看起来有点曝光,而且颜色的色溢也计算错误。在地板上的颜色球,被赋予的是一个来自3ds Max的纯净的材质球,所以他们的颜色是正确的。然而,地面的材质的颜色和墙上的那副油画的颜色,是不正确的。饱和度和对比度都没有很好的被修正。

线性工作流程和gamma解释

以正确的设置(线性工作流),颜色和灯光都是正确的。

用线性流程也有一些其他的优点,例如每通道信息都有32位。常规的图像(像jpg)每个通道(只有R,G,B通道)只有8位,虽然最后的输出结果也够好了,但是它并不包含足够的信息供后期处理使用。去看看电影,注意一下32位的图像时如何在过于曝光的地方保留更多信息的。你能发现在地板上的反射已经变得更好了。然而8位的图像并不“知道什么被隐藏”于白色的像素下,因此当曝光度降低的时候,它会变灰。而且,如果你在后期做一些景深和镜头效果(glare/bloom  眩光/散光),你会发现32位的图像会增加这些效果的质量。

现在,在我们开始研究gamma这个术语之前,你需要知道一些人类感知灯光世界的常识。我们所拥有的感知,并不是一个线性的方式的。换句话说,如果你手里拿着0.5千克的东西,再加上0.5千克,你可以很容易感到是双倍的重量,但是如果你拿着50千克的东西,再加上0.5千克的东西,你几乎感觉不到有什么不同。这种问题同样出现在听觉和视觉。

人类是怎样感知灯光的改变的

线性工作流程和gamma解释

如你所看到的,我们可以很容易分辨出50瓦的和51瓦的灯泡的不同。但是即使在增加同样数量瓦数的情况下,我们也很难分辨出150瓦和151瓦灯泡的亮度的不同。

这条曲线描述了人类如何感知灯光的亮度。

线性工作流程和gamma解释

因为我们在高亮度区域不能很好的区分亮度的不同,所以这就浪费了编码图像的一些信息,这些图像是那些在整个光谱中以同样数据密度录入的图像。(编码,就是,比如把一个图像存储成JPEG)换句话说,我们不需要在亮度区域保留同样的密度的信息,在暗部区域也是一样。事实上,如果你有一个线性编码图像,那么你至少应该需要每通道14位,而常规的jpg图像每通道却只有8位。最重要的是,比起人类的眼睛,你会有更多信息存在于亮部区域,从而能被区分出来-区分出那些被浪费的比特信息。

是的,那意味着jpeg是一个非线性编码格式。实际上,jpeg,以及几乎所有的8位的图像都是以同样的像人类感知灯光的曲线来进行编码

三色图

线性工作流程和gamma解释

你有注意过在3ds Max中,拾色器是如何从0到255的范围进行拾色的吗?这就叫做三色图。(色板)

注意色板在暗部区域的密度,和在亮部区域的宽度。这个结果显示在暗部区域有更多的信息,所以在这样的情况下,我们可以通过集中数据在暗部区域来利用人类对灯光的感知特点。

现在,在应用此编码以后,实际上此图片在后台发生的是,这个图像变灰了。像这样:

线性工作流程和gamma解释

你会感觉到困惑并且想问:为什么不是所有8位的图片都变得很灰呢?那么,你现在应该了解一下在图像进行编码以后,发生了什么。

在过去的时候,当我们使用的都是CRT显示器的时候,我们有幸见到输入的图像和输出的图像分别是什么样的。实际上,这个亮度的规律,正好和人类的感知光线的规律是相反的。(当我们用的是进行过编码的图像)

 

当gamma编码和CRT幂律函数在一起,中和以后整个结果应该是这样的:

线性工作流程和gamma解释

像我们今天用的平板显示器,并没有当初老的CRT显示器那样的显示效应。但是为了得到同样的结果,今天的显示器也会预置一个gamma曲线,是为了得到正确的图像显示。换句话说,原则和之前是一样的。

那么,在你渲染的时候需要做些什么呢?

其实,十分简单。当要在3ds Max中制作一个逼真的渲染的时候,用线性的方式去处理所有图像数据时非常关键的。因为它非常容易计算,而且也因为真实世界中并没有非线性的现象。那就意味着,当你在处理颜色、灯光、贴图,每件事需要做的事情的时候,都需要转换成线性空间。之所以叫线性,因为它不再是一条曲线了,而是直线,其被称作:gamma1.0。

线性工作流程和gamma解释

让我们更进一步解释一下。当在非线性空间下计算的时候,会发生的是,在亮度上,他们在各个位置的比率是不一样的,于是实际输出亮度也就不匹配了。

线性工作流程和gamma解释

如上面的插图所示,50%的地方的rgb值和实际输出的图像的图像并不匹配。如果要输出50%亮度的图像,实际上应该在图的22%的地方。这就是在非线性空间下计算,数学上出现问题的地方。

如果在线性空间下计算,那么他们的比率就匹配了,如图所示:

线性工作流程和gamma解释

 


 

狐狸说

这也和硬件有关,动态范围等。通常单反相机的标准拍摄模式也不是线性的,所以两部和暗部缺少细节,raw格式保留了这些细节,需要后期软件处理。

千年骚狐
微信公众号