ODT 概述
有些人抱怨 ODT 中包含的色调映射,我个人就很喜欢,这里有几件事需要你了解一下:
    ——ACES 色调映射实际上不是一个艺术性的 LUT,它的值不是随心所欲的[而是主观的]。
    ——RRT/ODT 的对比度,是由许多经验丰富的业内专业人士,在精心设置的投影环境中验证的。
    ——色调映射在 HDR ODTs 中,[具有]更少的阴影和高光压缩。
    ——ACES 视图转换,是在具有不同查看条件的设备上做到最好。
RRT 和 ODT 样条,以及 ACES 系统色调比例(RRT+ODT)是在一个大的图像测试集上,通过视觉测试得出的[…]来自专家观察,所以不,这些值不是任意的。——来自 Scott Dyer,ACES 导师
关于 RRT/ODT 流程的一些其他解释:
    ——ACES RRT 是为剧院展览设计的,在那里观看环境是黑暗的,电影的内容倾向于用更多的对比度来补偿黑暗的环境。
    ——即使有一个环绕补偿过程(Dark < - > Dim),驱动该过程的值是主观获得的,对于所有的情况可能都不够。
    ——RRT+ODTs 也是专家观看图像的结果,因此不可否认的是,有一些内在的主观性。
    ——一些公司,如 Epic Games,会用 1.45 的增益预曝光场景引用值(这与你的灯光 0.55 的曝光下增益大致相当)。
Shaper 整形器
ACES 输出转换包括一个 Shaper ,它是一个对数颜色空间,用于优化数据,它是一个透明的过程,只不过是一个数据的中间状态,具有纯粹的技术目的。
当我们用 OCIO 配置在 sRGB(ACES)中显示时,到底会发生什么?要转到 sRGB(ACES),OCIO 首先将颜色转换为 ACES2065-1 (AP0 原色)。然后从 AP0 开始,我们进入一个称为 shapper 的颜色空间,这要归功于 1D LUT,最后是 sRGB,这要归功于 3D LUT。
来自 ACES 1.2 OCIO 配置:
- !#ColorSpace name: Output - sRGB family: Output equalitygroup: "" bitdepth: 32f description: | ACES 1.0 Output - sRGB Output Transform ACES Transform ID : urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_100nits_dim.a1.0.3 isdata: false allocation: uniform allocationvars: [0, 1] to_reference: !#GroupTransform children: - ! {src: InvRRT.sRGB.Log2_48_nits_Shaper.spi3d, interpolation: tetrahedral} - ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear} from_reference: !#GroupTransform children: - ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse} - ! {src: Log2_48_nits_Shaper.RRT.sRGB.spi3d, interpolation: tetrahedral}
因为 3D LUT(甚至是 64^3)不适合应用于 ACEScg 之类的线性数据,所以需要一个 Shaper,否则只会浪费数据。
Delivery 传送器
一旦你对你的渲染满意了,并且完成了这个项目,你就准备好交付你的帧了。在动画工作室,我们通常将线性 EXR 文件传送到数字实验室。
对于 ACES,它的概念几乎是相同的,只是有几个重要的注意事项,为了最终交付到数字中间层,您必须交付与 ACES 兼容的 EXR 文件。
这是学院为在不同设施之间交换文件而制定的标准。这一点非常重要。你的渲染输出将是 ACEScg (AP1),但是你的合成输出必须是具有正确的元数据的 ACES2065-1(AP0)。
交换和规定文件应按照 SMPTE 2065-4 的要求编写为 OpenEXRs。在 Nuke 中,应该将写入(Write)节点的色彩空间设置为 ACES2065-1,并勾选 Write ACES compliant EXR 复选框以获取正确的元数据。
Doug Walker 在 Acesentral 中解释道:
SMPTE ST 2065-4 规范“ACES 图像容器文件布局(ACES Image Container File Layout)”目前需要未压缩的文件,此外,还有其他限制,例如只有 16 位浮点和某些通道布局(RGB、RGBA 和立体 RGB/RGBA),这些限制对于涉及归档或实时回放的用例,是有意义的。
ACES 实施
ACES, OCIO 和 CTL
现在大多数彩色管道都是通过 OCIO 设置的,这是因为它与许多软件兼容:Maya、Guerilla、Nuke、Mari、Rv……但是使用 OCIO 和 LUTs 有一个缺点:精度不高。
CTF 工作得更好的原因是,它更像是 ACES CTL 代码的“精确数学”实施,而不是烘培成 LUT-based 的表现。——来自 Doug Walker,ACES 导师。
离散和连续转换
这是怎么回事?我的同事 Christophe Verspieren 给了我答案,他向我展示了连续和离散的概念,这正发生在 OCIO 的烘焙 LUT 上,其实很容易理解。
离散和连续是典型的计算,左边的是烘培的 LUTs,右边是方程式,因为没有间隙可以填补,所以更精确。
当我们从场景引用转到显示引用时,它意味着要覆盖一个巨大的动态范围(ACES 处理大约 15 个档),离散变换实际上覆盖了巨大的区域。
我们没有将动态范围分割成相等的区域,因为我们更喜欢以牺牲高光为代价,来详细拆分大多数当前值,因此,显示色调映射(ODT)通过增加曝光量使这些不正确的(false)色度真正可见。
而且,即使转换是在 OCIO 中以数学方式定义的,它在 GPU 上而不是在 CPU 上运行的事实,导致了公式的离散化:图形卡实际上创建了一个 LUT!这些问题,真的是永无止境…
颜色插值间隙
此外,这些间隙(来自离散化)是线性填补,这并不一定是最自然的方式。即使我们改变色域,我们仍然在 RGB 中工作,并且线性插值是在穿过 A 和 B 的线上完成的。有时在实验室的颜色空间中管理颜色插值会更好。
在 OCIO 1.1.1 中并不是所有的数学公式都可用,只有 OCIO 2.0 才允许正确表示所需的 ACES 计算。
总结一下:
——在每个切片之间我们有线性插值。
——在很大范围内,这些插值缺乏精度。
——由于离散化,这会导致高光中的色度误差。
这在视觉上如何翻译?让我们看看一些具有极端饱和度的渲染,以比较不同的解决方案。
Nuke 中的 CTL 节点
这有多重要?我们应该坚持 OCIO,还是研究这个 CTL 实现?我想我读过的关于这个话题,并带来了最好答案来了!来自 Alex Fry:对于正常曝光的图像,尤其是来自实景摄影机的图像,您不太可能看到任何与 OCIO 配置不同的渲染值,但是对于包含极端强度和饱和度的 CG 图像,您将看到更令人满意的衰减和去饱和度。——2016 年 12 月,Alex Fry 就已经明白了很多事情…
所以看起来 CTL 是值得使用的,尤其是当你在制作饱和动画故事片的时候!
这些 Nuke 节点与纯粹的 CTL 实现 100%匹配,但速度更快。请注意,这些节点使用 ACES2065-1 footage。因为我们是在 ACEScg 中渲染的,所以在插入这些节点之前,你需要将你的素材转换为一个 OCIOColorSpace。
重要更新:多亏了 OCIO 2.0, ACES OCIO 配置将不再出现任何差异。这将是一个巨大的进步(可能在 2021 年第一季度实现)。
可以查看 ACES OCIO 配置的发行说明(点击查看)。
渲染引擎中的 ACES
大多数渲染引擎都集成了 OCIO,让我们能够访问 ACES。Autodesk 甚至在 Maya 中推出了 ACES 的 CTL。,但听起来可能令人惊讶的是,OCIO/ACEs 有不同的集成级别。同时,对于大多数渲染引擎,基于光谱的计算仍然是使用 sRGB/Rec.709 原色进行的,例如:
总结一下:
在 ACEScg 中渲染以获得最佳的照明计算,即使我们的监视器无法完整显示它。
使用适合您的监视器和项目的显示转换进行显示。
使用一个能满足你需求的监视器(最好能 100%覆盖 P3)。
666
66666
yyy
666
6666
11
学习使我快乐