level 8
就这个问题前几天在群里和血鸦吧主讨论了很久未果,在这里我重新阐述一下我的观点。
详见二楼,请勿插楼。
2013年08月04日 03点08分
1
level 8
首先要讲清楚的是色彩空间的概念。
线性空间和观察空间(view colorSpace):
线性空间指的是一般情况下按照标准的法则(包括物理或者非物理)计算的原始数值。
观察空间指的是用于最后呈现最终观看画面的数值。
为什么要区分这两个空间:
因为人眼对亮度的感觉不是线性的,看起来同样是白色的物体他们的实际亮度其实可能相差了几十倍。有摄影经验的朋友对此应该体会非常深,两个看起来差不多亮度的物体拍出来的亮度却相差很远,这就是因为相机的非线性曲线的容差度不如人眼导致的。
再来看看我们的显示器:
打开maya的拾色器,数值为0.5的灰色和数值和1的灰色进行对比,正常情况下(系统和显示器的gamma矫正设置正确),人眼的感觉,这两个颜色的亮度关系是两倍关系,也就是和它的实际数据吻合。但是实际上,显示器上显示出的这两个实际亮度(实际电压)却不止两倍,具体数值该是多少就决定了这个系统的色彩空间是怎样的一个曲线。
线性工作流的本质实际上是把渲染计算后的原始数值用在了显示器显示的真正亮度(原始电压)上。这才能正确了模拟人眼观看世界的情况,所以线性工作流下的渲染结果看起来更真实。
2013年08月04日 04点08分
2
贴图为什么要先经过gamma矫正:一般情况下,8位图像文件贴图的数据是记录的观看空间的数据,也就是符合1的亮度是0.5的两倍这个规则,所以要把它转换成用于计算的线性数据。
2013年08月04日 04点08分
gamma只是模拟这个非线性曲线的一个最简单的数学模型y = x^(1/gamma) 常见的sRGB曲线其实并是直接用这个公式去计算的,它只是约等于gamma2.2
2013年08月04日 04点08分
回复 ldj656 :常见的sRGB曲线其实并非是直接用这个公式去计算的,它只是约等于gamma2.2
2013年08月04日 04点08分
level 8
所以线性工作流之所以叫线性工作流,讲到这里原因就已经非常明确了,就是用作工作流的数据必须全是在线性空间下的数据,包括maya里设置的各种参数,后期软件合成时用作加减乘除的运算数据,以及最终输入到显示器里的电压,全是在线性空间下的数据。
之所以叫线性空间数据,实际上讲的是实际亮度和数据之间的关系,符合y = a * x这么一个正比函数,这条函数的曲线是一条直得不能再直的直线,所以叫线性空间。
2013年08月04日 04点08分
3
level 10
这跟当时的讨论内容关系不大。。。 所以没什么好说的。LWF现在应该大多数做渲染的都懂。。。
2013年08月04日 10点08分
8
level 8
理解了LWF其实可以从侧面想明白一些材质方面的问题。
例如房间窗户的玻璃,白天看起来是透明的,晚上看起来反射非常强烈像是镜子一样,但是实际上玻璃的反射率是不变的。
2013年08月04日 10点08分
10
同样的高光强度,在黑色物体上仿佛要比在白色物体上要强很多,在没有用LWF之前,很多渲染合成师都是调整黑色物体的高光实际强度要高于白色物体的高光的。
2013年08月04日 10点08分
窗户反射和线性工作流程有什么关系?
2013年08月04日 11点08分
回复 乐琢 :微弱的颜色会被”提亮“得更多,这是LWF的一个特性,用了LWF以后不只是整体更亮了这么简单。
2013年08月04日 11点08分
被”提亮“的程度并不是"等比"的,这一点就是我在群里和血鸦争执的
2013年08月04日 11点08分
level 10
请问有什么特别的意义么
前段时间微博上挺火的程序员辞职 卖水果 卖烧饼的 ,改行之后头发长出来了,精神好了,还娶了老
2013年08月07日 01点08分
11
level 11
我们的老师讲这问题的时候,就是让摄像机和材质球加gamma值来解决,但是有时候不用的话效果反而更好。
2013年08月08日 14点08分
12
level 13
看过几个版本讲LWF的文章,三维里边的部分还能理解,一说到显示器就晕了
2013年08月08日 16点08分
14
线性工作流就是让显示器显示出的实际物理亮度等于渲染计算出的亮度乘以某个单位系数。
2013年08月09日 01点08分
回复 ldj656 腻害
2017年07月03日 03点07分