转载很久之前一篇关于伽马的文章
开始之前,必须申明:本教程基于VR3.0版本的!
前言
早在2004年,在VR的官方论坛上,有一些大神们发布了一批“线性空间流”的帖子,得到了很多粉丝的追捧,这个话题一下子就爆了!好多人都开始尝试去理解这么做的道理,因为这套流程虽然能做出好看的图来,但玩起来有点复杂。其实它背后的原理非常简单:VR和MAX的计算原理是基于“线性空间”的——VR的相机对光的捕捉也是“线性”的。这一切都在告诉人们:MAX和VR是在伽马1.0环境下工作的。这些都没问题,但是,也正是由于VR和MAX都是默认为伽马1.0环境的,那么你浏览渲染图的显示器也要与之同步才会看到正确的颜色。然而,电脑显示器并不是基于伽马1.0的!最要紧的是:除非有人告诉,否则VR和MAX打死也不知道这件事情!所以呢,我们看到的渲染图就总是很暗!
伽马1.0与伽马2.2
这里有个简单的例子:一个带开口的室内渲染,尽量让光从那个开口里照射进来。左边那张是伽马1.0,右边是伽马2.2。可以明显看到左边那张黑了好多,而你要想在这个设置下将整个房间里面继续提亮,那你开口处肯定曝光了!而右边这张是用伽马2.2渲染的,亮了很多,应该和你想要的结果很接近了吧。
HDRI和伽马
另一个常见的问题是HDRI打光时的反射问题。下面这个例子你就可以看到,中间是那张HDRI的图,左侧的伽马1.0的反射里,图片显得暗了很多,而右侧图设置成伽马2.2后,反射看起来就和那张原图很接近了,而且亮度也很舒服。
纹理,颜色总是发灰,对比度不强
对于刚刚用伽马2.2来渲染的新手们,这些问题总是会遇到,图总是看起来发灰,缺少对比度。之所以会造成这种问题,是因为在设置一个用伽马2.2场景的时候,你还要记得将你的颜色也变成伽马2.2的环境。纹理贴图也是如此,每一张图片其实已经都是基于伽马2.2的了。所以假如你在MAX里又再次设置了伽马2.2,那等于是变成了两倍的伽马2.2!也就会显得很灰!所以,正确的设置对于最后的效果尤为关键,不论是选取纯色还是使用贴图,都必须让它们在最后的渲染里呈现正确的颜色。下面是一些老版本里的MAX设置和新版本里的默认设置的对比,左侧是老版本设置,没有经过任何修正,而右侧是伽马2.2的设置。
你要改的选项有这么几个:
Enable gamma/LUT correction: 这个是打开这套工作流程的总开关
Gamma:设置你需要的伽马数值,这里我们用2.2
Materials and colors:这里选择你是否需要材质编辑器里的颜色选取也按照伽马2.2来显示。这个设置最关键!
Bitmap files input gamma:这里是你选择是否需要将所有的贴图也按照伽马2.2来加载到材质编辑器里,以此来避免重复修正和贴图发灰的问题。
Bitmap files output gamma:这里决定了最后的渲染图要是否要以伽马2.2来保存。对比左右两套材质编辑器的颜色选取框,你会发现右边的变亮了。这时假如你还想得到刚才伽马1.0里的那个深红色,你得在新的伽马2.2设置里重新选择一次那个颜色。
帧缓存与sRGB
以上这些只是保证你的颜色和贴图最终会正确的显示。在VR的帧缓存里,有个容易被忽略的小按钮:sRGB。这个按钮给最后渲染图加上一个伽马2.2的曲线。换句话说,让你的渲染结果一伽马2.2来显示。下面的图就是开关时两者的区别,左上角那个是开了的,右下角是关闭的。
如何从帧缓存里保存图片
那么如何把渲染图正确的保存出来呢?我们先回到刚才的设置环节,我们在那里将output gamma设置成了2.2的,这一点极为重要!因为那个sRGB的小按钮只是一个预览工具,所以我们在正式保存渲染图的时候,还是要将其以伽马2.2的形式保存的,否则的话,你会发现你保存出来的渲染图又再次变得很暗了!(因为伽马2.2其实并没有真正作用到你的渲染图上,只是预览而已)那么问题来了,那个sRGB的小按钮给了渲染预览一个伽马2.2,那么保存出来的图是不是也会自动继承同样的效果呢,也就是说,会一模一样吗?答案是:不可能!当然这种区别不是很大很明显。你可以将预览图截图出来,和你最终保存的图做个对比,会发现:保存出来的图会稍微亮那么一点点。这就反证出sRGB的曲线和MAX的伽马2.2曲线是有一点不同的。
非线性工作流的伽马2.2
假如我不想保存一个32比特的图的话,需要怎么做呢?
这个需求对于大部分要在PS里继续后期处理渲染图的人来说,是很有必要的。打开VR面板里的color mapping卷展栏,切换到专家模式,你就可以看到全部的参数设置了,你会发现伽马是2.2。但是在模式(MODE)选项里,默认的是color mapping only,这意味着没有伽马,保存出来的图是不会自动修正为伽马2.2的,哪怕我们在打开sRGB按钮的时候,确实看到一张你想要的渲染结果,你也没可能保存出这样的一个图。那么,就来试试另一个模式color mapping and gamma,改为这个模式后,你需要关闭sRGB按钮来避免双倍伽马效果。除此之外,你还要回到最初的设置里,将output gamma改回原来的1.0,否则你在保存图的时候,又再次做了一个双倍伽马。正确的设置其实是这样的:
头晕了吗?还有更复杂的情况:下面的图,一张是带伽马效果的预览,一个是保存出来的不带伽马效果的EXR文件。你可以发现前者稍微亮一些。
总结
线性工作流伽马2.2设置已经在新版本里是默认设置了。所有用VR渲染的图都默认是这种格式了。假如你是VR新手,你甚至都不会留意到这些,除非你保存的图32位的,你才会发现你保存的图和预览到的图有点不同。最佳的最专业的保存图的格式就是32位的EXR文件,那才是最正宗的线性工作流!还有一种就是用color mapping来达到伽马2.2, 而关闭sRGB按钮,这样就不会让保存出来的图发灰了。两种办法都可以,只要你喜欢就好。下面是两套办法的设置截屏:
正宗的线性工作流设置:
用伽马2.2效果的设置:
颜色的RGB数值怎么用
在遇到LOGO这类贴图的时候,会需要颜色非常精确。很多人会在PS里吸取这个颜色,然后在MAX里复制黏贴它的RGB。下图里,你会发现最后的颜色明显不对!
问题出在了哪里?因为MAX被我们设置为2.2了,但PS却没有,所以你复制PS里的RGB,放到MAX里就不对了。有个简单的办法可以解决这个问题,那就是你做一个纯色贴图来取代RGB数值。那样的话,颜色就准确了。
或者,将那个贴图在材质编辑器里打开,然后吸取那个颜色,这样也可以得到正确的结果
插眼
怎么把这个文本收藏
看的我一脸懵逼 ...一点没懂 能拜师吗
卧槽···看的我头晕····但是就是想看
很不错的帖子,感谢,学到了知识点。