“线性流程”是Siggraph 2008上被正式提及的。其实“线性流程”完全是色彩管理流程的一个基本组件贯彻在CG制作的各个环节。本来就应该是这样的事情,我也不晓得怎么突然成了一个“高端”讨论问题。
显示设备必须要具有这样的特性,那就是表现真实世界的能量线性叠加特性——同样的一个物体,受到两盏同样的灯照明反射出的光能肯定是一盏灯的两倍。但是同时,对于显示设备(主要是从CRT)来说,却办不到这一点:倘若你输入128,那么它的发射强度却不是255的一半,而是要小的。
于是,我们就需要将交给显示器显示的数据进行补偿,在摄影机拍摄时候就已经自动的加强过了。这样,让加强过的视频数据交给显示器显示,才能体现出真实世界的“线性”特性。对于Panavison Genisis来说,它将真实世界的能量分布映射到对数空间,然后再提供查找表将色彩变换到线性空间,为了正常显示,你还必须使用伽玛校正,这样在你的显示器上看到的才是和摄影机拍摄的场景是“相同的”。对于DSLR来说,相机自己就已经做了校正,在我的Nikon D80上大概是1/0.45约等于2.2。
在这里我们根本就不应该参与讨论人眼的视觉特性,因为人眼是主观的观察角色,只要数据在交换过程中经过变换后符合显示设备的特性,那么人眼所看到的东西应该是不变的。
事实上,任何是否PBR的渲染机制,本质上都是用程序来模拟真实世界的光能交互,这个过程也完全是线性的。美工绘制的贴图,在进入Shader计算前其实都需要变换到线性色彩空间中进行计算。对于HDR照明来说,HDR环境贴图的数值一般都是线性的,可以直接参与渲染,倘若做Tone Mapping,其实正确的过程应该是先做函数空间压缩,再做伽玛校正。所幸的是,如今的渲染器默认将伽玛值都设置为了1.0,其含义也就是,在当前的显示系统上,你绘制的情况是什么你渲染的情况就是什么,软件绝不做任何补偿修饰。这样的话,进一步来说,其含义就是,你所满意的渲染结果只在你当前的显示设备上有效,倘若要进行交换,那么必须要附上显示器的ICC,这样别人的显示设备才能正常显示。
可惜国内目前根本没有工作室没有真正的部署色彩管理流程,这些基本的保障生产质量的手段也就根本无从谈起,有多少人晓得,CRT一周就要重新较色,LCD两周就要较色这个道理的?