BACK TO ARCHIVE

为什么要使用ACES进行灯光渲染?

11.14.2022 ADUCG RESEARCH

为什么要使用 ACES?

数百部作品都使用 ACES 制作,包括电影、电视剧、广告和 VR 内容,其中包括 乐高大电影乐高蝙蝠侠大电影 , 银河护卫队 2, Legend of the Sword, 大巡演 , 咖啡馆里的社会 , 坏蛋麦瑞 2, 泰山传奇 (电影), 主厨餐桌 , 婚礼伴郎 , Baahubali: The Beginning, 浪潮 - 维基百科 (2019)

对于那些不想被好莱坞图像格式大潮裹挟的人,我在这里解释为什么转换为 ACES 值得花时间:ACES 渲染和显示图像的方式最接近人类实际看待世界的方式 - 这使得图像质量产生了巨大差异。首先,让我们快速回顾一下视觉的原理 - 人类通过进入眼睛并与色彩和亮度感受器相撞的光波(或波长)来看待世界。每个感受器将碰撞作为信号传递 - 我们的大脑将这些信号组合并转化为图像。ACES 代表和范围的色调和亮度值与我们眼睛中的感受器能够感知的范围非常接近。因此,ACES 色彩空间比其他数字色彩空间(特别是 sRGB)更接近”人类视觉色域”的实际体现。

对于 CG 或数字艺术家来说,他们想要使用 ACES 的主要原因是他们的最终渲染/输出看起来和感觉更加丰富,更加逼真。这种”逼真感”来自于 ACES 提供的扩展动态范围。你的最终图像/渲染看起来和感觉更接近你用自己的眼睛所看到的东西,在视觉上明显优于典型的渲染。这带来了三个重要优势:

  • 高光 - 由于动态范围扩大,你的高光和阴影将包含更多细节。需要更加极端的光线或相机曝光才能在你的渲染中看到纯白色裁剪。
  • 色彩 - 当色彩被越来越亮的光源照亮时,它们会褪色,就像你作为人眼在现实生活中所感知的那样。
  • 工作效率 - 数字艺术家使用 ACES 比使用其他色彩空间更容易获得准确的、逼真的渲染图像。他们不必花费太多时间调整光线强度来避免裁剪,而是可以使用更逼真/准确的强度值。因此他们可以用更少(或相同)的工作量获得更好的结果。
  • 这是一个存档格式….(或者这一点应该放在解释流行的 ACES 色彩空间的区域中?)

下面是两张图像,清楚地展示了为什么人们会想使用 ACES 进行渲染。第一张是在 sRGB 中渲染的图像,第二张已在 ACEScg 中渲染。这两张图像之间要讨论的两个重要差异是高光和亮度的差异。关于高光,请注意在 sRGB 图像中高光似乎出现了裁剪。它们完全变为白色,完全丧失了任何细节。此外,你会注意到 sRGB 图像中的亮色开始向黄色极度不真实地偏移。在 ACEScg 图像中,这些高光保留了大量细节,颜色在变亮时开始去饱和。这种去饱和行为是我们在照片中观察到的,也是用我们自己的眼睛看到的。亮度也有明显的差异。在 sRGB 图像中亮度值为 0 到 1 之间中点的像素,在 ACEScg 中的亮度值约为 3%。这是由于 ACEScg 的动态范围要高得多。更多的亮度值被压缩到图像中。你可以将 sRGB 图像看作是从更大的 ACEScg 值范围中取出的一个小部分值的样本。使用 ACES 你会获得更逼真的渲染,但你也必须以不同的方式打光;你可以使用更加真实的光照值。

sRGB

什么是 ACES?

ACES( 学院色彩编码系统 )并不是像 Adobe RGB、Rec. 709 或 sRGB 这样的单一色彩空间。ACES 包括以下组件:

  • 一套宽色域色彩空间集合(ACES2065-1、ACEScg、ACEScc 和 ACEScct)
  • 用于将在特定硬件上捕获的图像转换为 ACES 色彩空间的变换(从显示参考到场景参考)
  • 将其他流行色彩空间中的图像转换为 ACES 色彩空间的转换工具(显示相关转换为场景相关)
  • 一系列实用工具转换,帮助为管线中的特定用途转换图像(实用工具 - sRGB - 纹理转换为 ACEScg,用于 CG 材质的颜色通道)
  • 允许您将 ACES 图像转换为另一种色彩空间的转换工具(ACEScg 转换为 sRGB、ACEScc 转换为 Rec. 709)
  • 允许艺术家在校准硬件上正确查看 ACES 图像的转换工具(例如计算机显示器和电视)

附注: 通常,你在各种软件包中看到的变换集合实际上是使用 OpenColorIO(OCIO)实现的。在使用 ACES 时,你会频繁看到 OCIO。OpenColorIO 是由 Sony Imageworks 开发的开源色彩管理框架。OCIO 提供了在特定色彩空间中工作所需的工具、规范和色彩变换。

从哪里开始?

一个重要的图像格式要求

要使用 ACES,所有数字图像必须以线性半精度 16 位 EXR 格式保存。如果图像不是这种格式,必须首先将其重新导出或转换为这种格式。许多 CG 和后期制作 CCD 提供线性半精度 16 位 EXR 作为输出选项。

符合 ACES 标准的图像应始终是线性半精度 16 位 EXR 文件。虽然使用浮点 EXR 变得越来越容易,但某些应用程序仍然会造成困难(说的就是你 Adobe)。希望这个网站能在这方面有所帮助。

在 ACES 中工作需要一些适应时间……

在典型的 CG 色彩工作流中,例如使用线性 sRGB 图像/纹理时,像素值通常在 0 到 1 的范围内。但是使用 ACES 时,你将需要处理更高得多的动态范围。由于这一差异,艺术家在将图像转换为各种 ACES 色彩空间中的任何一个时,必须非常谨慎和留意所提供的选项。

应该使用哪个 ACES 色彩空间?

图像的应用(或用途)通常决定了在转换过程中应该采用哪些值范围。不同的用例需要不同的色彩空间和转换选择。例如,应用于材料上的漫反射颜色的图像(在 3D 应用中)应该与应用于背板的图像进行不同的转换。

目前只有少数几种不同的 ACES 色彩空间。每种都是不同的,并具有特定的场景来管理您何时想要使用它们。

ACES2065-1 (AP0 primaries)

ACES2065-1 也可以通过名称 AP0 来识别。它拥有所有 ACES 色彩空间中最宽的色域,完全包含整个可见光谱。您几乎永远不会在这个色彩空间中工作,它主要用作传输和存档格式。通常,这是您用于在制作工作室之间传输图像/动画的色彩空间。

ACEScg (AP1 primaries)

ACEScg 是 CG 艺术家将使用的色彩空间。它是”场景参考”或线性的。它的色域范围不如 ACES2065-1 宽广,但远大于大多数其他可能使用的色彩空间,并且具有巨大的动态范围。

ACEScc & ACEScct (AP1 primaries)

ACEScc 和 ACEScct 主要用于调色。这不是线性色彩空间,黑色映射为 0,白色映射为 1。ACEScct 与 ACEScc 相似,但在图像的暗部数值中具有”脚”或伽马曲线。这使得调色/编辑软件的行为和感觉就像在其他色彩空间中工作一样,这让一些调色师非常满意。

ACESproxy (AP1 primaries)

ACESproxy 主要用于摄像机播放和视频显示。与 ACEScc 和 ACEScct 一样,ACESproxy 具有非线性变换函数,并将黑色映射为 0,白色映射为 1。

以下是对 CG 艺术家几个常见用例的详细介绍,每种情况都需要不同的转换解决方案。

案例 1:用作纹理的图像转换

通常,CG 艺术家在 3D 应用中用于纹理化对象的图像是 8bit sRGB 图像,具有典型的 sRGB 伽马曲线。通常,艺术家会简单地移除伽马曲线,使图像线性化,然后将其贴到他们的材质上。现在,在 ACEScg 中工作和渲染时,需要考虑以下几个因素:

Gamma 伽马

ACEScg 是一个景物参考(线性)工作色彩空间,这意味着任何图像都需要被线性化。

White Point 白点

ACEScg 的白点与 sRGB 不同。ACEScg 的白点是 D60,而 sRGB 的白点是 D65。

Dynamic Range 动态范围

最后是动态范围。这是我们看到很多 CG 艺术家感到困惑的地方。sRGB 图像用值 1 表示白色。我们用来描述 3D 应用中物体表面的材质也期望值在这个范围内。现在出现了一个问题。ACEScg 中的白色值约为 16。我们该怎么办?

解决方案

OCIO 中有一个称为”Utility - sRGB - Texture”的变换,它将线性化、转换白点并将图像的色域转换为 ACEScg,但保持值的映射范围在 0 到 1 之间。转换后,这些纹理在我们的材质上将正确渲染并呈现美观效果。

情况 2:用于置换、法线、凹凸等的图像转换

对于置换和法线贴图等纹理,像素的实际数值含义不是亮度或颜色。用作置换和法线贴图的图像不需要将其像素值转换为 ACES。对于这些图像,我们完全不需要进行任何颜色转换。但是,ACES 合规的一部分是图像格式和位深,因此,你需要将图像转换为半精度 16 位 EXR。这就是”Utility - Raw”色彩变换的用途。使用此变换时,它将保持像素的数值不变。

情况 3:用于背景板的图像转换

有时您想将图像转换到 ACEScg 色彩空间,使其看起来完全相同,就像在 Photoshop 中打开一样。为此,您需要使用”Output - sRGB”转换。等等…什么鬼?!为什么要对图像输入使用输出转换。好吧,这是某些 OCIO 色彩转换的另一个奇怪之处;有些转换除了常规转换外,还能够执行逆向转换。所有”Output”转换都可以执行此操作。您使用”Output - sRGB”将图像从 ACEScg 转换到 sRGB,它们看起来完全相同。这意味着因为它可以执行逆向转换,它可以将 sRGB 图像带入 ACEScg,它们看起来完全相同。

重要!!! 您永远不会查看原始 ACES 图像。您总是通过 RRT/ODT 查看图像(请参见下面的说明),以便它在您的显示器/设备上正确显示。例如,如果您的显示器针对 sRGB 进行了校准,并且您正在使用 Nuke,您需要为查看器选择”(ACES) sRGB”。这将是 RRT 和 sRGB ODT 转换 ACES 图像以在您的 sRGB 校准显示器上查看。没有能够查看 ACEScg 图像的 ACEScg 显示器,因此我们需要将图像转换为适合我们显示器的色彩空间。

术语

IDT

输入设备变换是用于将图像/视频的像素颜色从特定设备转换到 ACES 色彩空间的变换。

RRT

参考渲染变换将场景参考的线性数据转换为高动态范围的显示参考数据。然后,这些数据被传递给 ODT,以将数据转换为可在特定显示类型上查看的格式。

ODT

输出显示变换负责将 RRT 创建的数据转换为可在特定设备或色彩空间上查看的数据:sRGB、P3、Rec. 709。

CIExy 1931 Color Diagram 色度图

这是一个非常常见的图表,描绘了人类能感知的色彩范围。重要的是要注意,该图表仅描绘了色调和饱和度,而不是明度/强度。为了解释色域、原色和白点,我将使用 CIExy 图表来可视化色彩空间,这样我们可以轻松看到色彩空间的大小,以及这些色彩空间可以表示多少视觉光谱。

gamut 色域

色彩空间的色域是可以在该色彩空间内表示的所有色彩的集合。在下面的图表中,色域是色彩空间三角形内所有色彩的集合。许多流行的色域已被绘制出来,以帮助说明可供选择的广泛范围。注意 sRGB 实际上能表示的色彩是多么少。

primaries 原色

对于 RGB 图像,原色是色域中最红的红色、最绿的绿色和最蓝的蓝色。在下面的图表中,你可以看到这些用色域三角形的角表示。还要注意 ACEScg 色彩空间的绿色原色位置。它位于可见光谱之外(称为虚拟颜色)。将其放在那里是为了让尽可能多的红色和绿色之间的色调能够落在 ACEScg 色域范围内。原色位置带来的一个后果是,你永远不会单独使用完全的绿色值。

white point 白点

白点是色彩空间中我们认为是白色的点。ACEScg 和 sRGB 具有不同的白点。下方显示的是开尔文温度标度(和 P3)在所有人类可见色调上的分布图(CIE 1931 色度图)。色彩空间的白点通常由其 CIE 标准光源标记表示。这些标记通常以字母”D”和两个数字开头。例如,ACEScg 和 sRGB 分别具有 D60 和 D65 白点。这些值与开尔文标度上的数值大致相对应:D65 是 6500 开尔文,D60 是 6000 开尔文。

gamma 伽马

在处理伽马时,你会经常遇到”线性”和”伽马曲线”这两个术语。ACES 是线性的,但大多数时候我们用相机拍摄的图像、在 Photoshop 中制作的图像以及从互联网上下载的图像都不是线性的。因此,我们需要理解什么是伽马,以及如何将非线性图像转换为线性图像。早期当计算机速度缓慢、驱动空间昂贵、内存有限时,我们需要以尽可能高效的方式存储图像。首先,我们只能使用每个颜色通道 8 位来存储图像,这意味着每个通道只能存储 256 个不同的值。事实证明,我们的眼睛对暗色中的小数值增加比对浅色中的增加更敏感。我们可以使用伽马曲线来存储图像,将每个通道中的 256 个值中的更多分配给暗色,而不是浅色。这意味着随着像素值的增加,该值会以越来越大的幅度增加。换句话说,从 0 到 1 的增加会导致数值增加较小,而从 254 到 255 的增加则会导致数值增加较大。在线性图像中,数值增加是均匀的。3D 应用程序倾向于使用线性图像,因为这使得计算颜色和光照的数学运算变得容易得多,并且使得使用高动态范围图像成为可能。了解你的非 ACES 图像是线性的还是具有伽马曲线对于正确转换它真的很重要。

注意非线性曲线在 1 之后的数值会反转。对于具有暗 gamma 值的图像,在 1 之后开始变亮,而对于明亮的 gamma 则相反。这就是为什么在处理大于 1 的值(HDR 图像)时我们需要使用线性图像。

当你自己研究 ACES 时,你会经常遇到场景参考和显示参考这些术语,理解它们的含义以及它们与你的图像的关系是很重要的。

场景参考

场景参考图像是线性的,旨在代表真实世界的光值或光的实际情况。然而,当在显示器上原始显示时,它们看起来很糟糕,因为它们没有考虑到显示器的特性(动态范围、伽马值等)。ACES 和 ACEScg 都是场景参考的。场景参考图像具有线性伽马曲线。

显示参考

显示参考图像的编码方式使其在显示时看起来很好,或者数据以提供高效存储的方式编码。sRGB、P3、Rec. 709 和 Adobe RGB (1998) 都是显示参考图像。显示参考图像被编码为在特定设备(sRGB 显示器、Rec. 709 电视、P3 电影屏幕)上查看,或来自特定的摄像机色彩空间(RED DRAGONcolor、ARRI LogC、Sony S-Log 等)。显示参考图像具有非线性伽马曲线。


缩写

ACES - Academy Color Encoding System
AMPAS - Academy of Motion Picture Arts and Science
OCIO - Open Color IO
OIIO - Open Image IO
LUT - Look Up Table
ICC - International Color Consortium
ICM - Image Color Management
IDT - Input Device Transform
ODT - Output Device Transform
LMT - Look Modification Transform
RRT - Reference Rendering Transform
UI - Unsigned Integer
OCES - Output Color Encoding Specification

本文采用 Creative Commons BY-NC-ND 4.0 协议进行授权。

BY-NC-ND: 署名-非商业性使用-禁止演绎

End of Article