线性工作流和颜色管理

线性工作流是一种进行明暗处理、照明和渲染的方法,与直接使用非线性视频值(如 sRGB)相比,它具有许多优势。颜色管理通过在用于输入、渲染、显示和输出的不同颜色空间之间正确转换颜色来实现线性工作流。

颜色空间根据主要组件以及白点、编码和其他属性来明确指定颜色。例如,用于网页上 sRGB 图像的主要红色、绿色和蓝色值与 P3 数字电影投影仪使用的主要红色、绿色和蓝色值不同,用于 Web 和电影观看的周围灯光条件也不同。然而,可以精确转换标准显示器或投影仪上显示的颜色,因为 sRGB 和 DCI-P3 颜色空间都有很好的特征。但是,要正确解释 RGB 三色值,如 (0.5, 0.25. 0.25),其预期颜色空间必须已知。

现代渲染器可以模拟光线透射、吸收、反射和折射在真实世界中的工作方式。因此,三维场景中的灯光应与真实照明紧密匹配,无论是室外照明还是工作室照明,其中颜色值与光能量成正比 - 这称为场景相关线性工作空间,或简称为场景线性。在这种颜色空间中,没有最大亮度:(1.0, 1.0, 1.0) 是完全适应照明的典型观察者所认为的“白色”,但光源和镜面反射可能会更亮。

但是,显示设备确实有一个最大亮度,当表示为 8 位整数值时,也用 (1.0,1.0,1.0) 或 (255,255,255) 表示。即使在高动态范围设备上,这个最亮值也远不及现实世界中的亮度。这使得有必要将场景的高动态范围值映射到更有限的范围以供显示。只需缩小颜色值以适应显示范围,就会产生令人不快的“模糊”图像 - 需要的是具有摄影响应的色调贴图。

除了高动态范围外,通常还需要使用色域宽的颜色空间进行渲染。这样就可以呈现更多颜色,在制作数字电影和 HDR TV 的内容时尤其重要,因为它们的色域范围比 sRGB 和 HDTV 宽 (Rec.709)。

颜色管理包括应用适当的变换以根据需要在颜色空间之间进行转换。在创意过程中的特定点应用这些变换:

图像输入

处理输入图像(如纹理)的正确方法取决于在场景中如何使用图像。还取决于图像本身,包括图像当前的颜色空间、编码和图像状态(图像的颜色值是与场景相关的亮度值成比例,还是与显示相关的亮度值成比例)。

用于非颜色数据的图像不应应用任何变换。这包括凹凸、法线、置换贴图,以及用于其他属性(如半透明、镜面反射度、反射率等)的贴图。

对于表示颜色值的图像,存在几种可能性:
  • 大多数高动态范围图像已经是场景线性图像,包括 OpenEXR、HDR 和一些 TIFF 文件。它们可能不需要任何色调比例线性化,但如果它们不同,可能仍需要变换才能从输入空间的主颜色和白点转换为渲染空间的主颜色和白点。
  • 使用特定设备捕捉的图像应该应用特定于该设备的输入变换。这包括数字电影摄影机拍摄的片段,以及来自 ADX 校准的扫描仪的胶片板。其他类型的扫描胶片板通常需要某种形式的对数到线性变换。
  • 已经准备好显示的图像应移除 Gamma。这适用于许多常用的图形格式,包括 JPEG、PNG、BMP、Targa 和一些 TIFF 文件。但是,请务必注意,在移除 Gamma 后,颜色值与显示的亮度成线性正比,而非与场景的亮度成线性正比。这适用于纹理,因为这意味着没有大于 1.0 的值,这适用于基础颜色、透明度和其他颜色贴图的图像。

预览

要显示场景线性图像,必须对它进行转换以供查看。此变换通常涉及两个步骤:
  • 第一步是,将场景相关的值转换为显示相关的空间。例如,这可能需要通过色调贴图将颜色从高动态范围转换为 0.0-1.0 范围,并更改主颜色。

  • 第二步是,针对特定显示转换值。这可能需要再次更改主颜色和相应 Gamma,并将其编码为适当的整数值。

图像通常是在比室外场景或明亮的电影布景昏暗得多的照明条件下观看的,因此色调贴图用于通过生成宜人图像的摄影响应将高动态范围值压缩到显示范围内。通常色调贴图应用 S 形曲线,提高对比度和饱和度以补偿较低动态范围和暗淡的查看环境。此曲线还会将渲染空间中的值 1.0 映射到较低的值,以便在显示空间中为更亮的高光留出空间。

只应用 Gamma 不足以充分准备场景线性图像以供显示。不使用色调贴图,大于 1.0 的颜色值将保持大于 1.0,并且被显示器剪裁。

渲染的输出

是否将变换应用于渲染输出取决于这些文件的使用方式。
  • 如果文件将进行进一步处理,则应将其保留在场景线性渲染空间中。这样,完整的动态范围可用于合成和放坡等操作。但是,在监视器上查看这些文件仍然需要色调贴图和显示变换,否则它们将显得太暗。
  • 如果文件将直接显示(例如,在网页上发布),则应烘焙色调贴图和显示编码。
  • 在某些情况下,可能需要应用其他变换才能将文件转换到特定空间。