介绍
上一章主要介绍2014年之前的色彩管理。现在,我将介绍ACES,这是由美国电影艺术与科学学院主持的数十位专业人士开发的色彩管理系统(CMS)。
使用ACES已经制作了300多部电影,ILM,Framestore,Double Negative和Animal Logic等许多VFX工作室都使用它。ACES也已成为Netflix的交付标准。 ACES背后的全部想法是为帮助专业人士的色彩管理设定标准。
就像spi-anim配置一样,可以通过OCIO使用ACES(这是ACES 1.2配置的链接)。ACES还已经在Resolve的 CTL 和Unreal和Unity的 GLSL / HLSL中实现。
如果您不想再听其他技术章节的话,我也不会怪您。您可以跳到第2章。
否则,让我们潜入。
ACES概述
当我在2016年加入Animal Logic时,真正令我印象深刻的是它们的色彩范围。这些艺术家正在拍摄一部名为_Lego Batman的精美且非常饱和的电影。_这是我的第一天,我在监视器上看到了这张照片(我认为Nick Cross照了这张照片)。
乐高蝙蝠侠电影:华纳兄弟影业和华纳动画集团,与乐高系统A / S合作,由Lin Pictures / Lord Miller / Vertigo Entertainment制作
我真的对自己说:“哇!这看起来不错!他们如何获得这些疯狂的色彩?”色彩范围的确比我以前的工作室要宽。后来我意识到这要归功于ACES:
- 在上一章中我们已经看到,许多工作室和学校都在sRGB色域内使用线性传递函数进行渲染,并通过一维LUT 在sRGB中进行显示。这是不理想的,因为它们以最小的色域工作。
- 在动物逻辑(和许多其他工作室如ILM或MPC)渲染ACEScg(其类似于建议2020),并在显示_P3_是用于电影院的行业标准。ACES帮助他们管理不同的色域。
为什么选择ACES?
ACES由电影艺术与科学学院,一些VFX工作室(MPC,Animal Logic…)和相机制造商(Arri,Red,Sony…)开发。它背后的想法很天才。
当摄像机是模拟摄像机时,事情就很简单。只有两种格式:35mm和70mm。用胶片拍摄的_原始_照片可以永久保存。
但是随着数字革命的发展,出现了多种相机和格式。这些用于Digital Cinema Distribution Master(DCDM)的专有系统可能很快就会过时。确实,数码相机的技术发展很快。问题是当这些电影需要重新制作以获得新的支持时,DCDM不再适用。
什么是ACES?
ACES是一系列颜色空间和变换,可让您对其进行操作。这是一个非常强大的CMS,因为它是一个开源项目,所以可以免费使用。该学院开发的参考色空间称为_ACES2065-1(AP0原色)。_这是它的特征:
- 超宽色域
- 线性的
- 高动态范围
- 标准化的
- RGB
ACES2065-1包含所有这些颜色空间。这使其非常适合存档。
使用_ACES2065-1(AP0)_的想法是获得永恒的DCDM(数字电影发行主机)。我们不知道在50或100年后将如何观看电影。创建ACES的原因如下:其目的是持续时间!
ACES2065-1也称为ACES色彩空间。但是我宁愿使用它的全名。
准确性对于色彩管理至关重要。
一张照片中的ACES
下图描述了ACES由三个主要过程组成:
ACEScg不等于Rec.2020,但它们非常相似。
- 答:IDT是将图像导入/转换为_ACEScg_颜色空间。
- B. ACEScg是渲染/工作空间。
- C. RRT + ODT是任何监视器或视频投影仪的输出。
ACES背后的想法是处理您可能需要的任何颜色转换:
- 您的纹理是来自_Photoshop的__sRGB_吗?还是在_sRGB_色域内呈线性?ACES提供了所有需要使用IDT(输入设备转换)从一种色彩空间跳到另一种色彩空间的矩阵和LUTS。
- 您是否在监视_Rec.709_或P3?ACES提供所有LUT来使用最合适的ODT(输出设备转换)查看您的渲染。
这就是为什么我非常喜欢ACES的原因之一:您总是知道**每个过程** 在哪个色域中**发生。**
我真的认为ACES使一切变得更加清晰。
ACES色彩空间
这是五个ACES颜色空间的列表:
- _ACES 2065-1_是与AP0原色线性_关联_的场景。它仍然是ACES的核心,并且是唯一的交换和归档格式(对于DCDM)。
- _ACEScg_与AP1原色(计算机图形学的较小“工作”色彩空间)是线性场景。
- ACEScc,_ACEScct_和_ACESproxy_都具有AP1原语和它们自己的指定对数传递函数。
原色 | 白点 | 传递函数 | 用法 | |
ACES2065-1 | 0号 | 〜D60 | 线性的 | 交流与档案空间 |
交流电 | AP1 | 〜D60 | 对数 | 工作空间(颜色分级) |
ACEScct | AP1 | 〜D60 | 对数(像电影一样) | 工作空间(颜色分级) |
心电图 | AP1 | 〜D60 | 线性的 | 工作空间(渲染,合成) |
醋乙氧基 | AP1 | 〜D60 | 对数 | 运输空间 |
以下是有关这些ACES颜色空间的更多说明:
- _ACEScc_和_ACEScct_用于颜色分级。它们是有效的色彩空间。
- 在大多数范围内,_ACEScct_与_ACEScc_非常相似,不同之处在于它添加了“趾”以使其更类似于传统的“对数”曲线(例如Cineon,LogC,S-Log等)。
- _ACESproxy_用于摄像机回放和视频显示。这是一种运输色彩空间。
ACES White Point并非完全是D60(实际上很多人都错了)。选择它是为了避免任何误解,认为ACES仅与CIE 6000k的CIE日光下拍摄的场景兼容。
一切都在这里解释。
如果您想阅读更多有关该主题的文章,那么还有一篇关于不同ACES颜色空间的绝对精彩的文章。
请注意,不建议使用ACES2065-1颜色空间进行渲染。您应该使用ACEScg(AP1主数据库)。下方提供了更多说明。
在_本文_中,我将主要关注ACEScg。
为什么选择ACEScg?
那么计算机图形学呢?ACES如何使我们的渲染受益?来自Animal Logic和Anders Langlands的Steve _Agland_还进行了一些测试,以在_ACES2065-1中_进行渲染。
在_ACES2065-1_颜色空间中进行渲染时发生了一个意外的问题:它太大,以至于给出一些负值,并且会_干扰能量对话。在这篇文章中对此进行了很好的解释。一些彩色窥视将此事件称为“大发现”_。
最重要的是,在ACES2065-1上评分并不觉得“ 自然 ”。从ACEScentral,尼克·肖解释说:
AP1原色是一种折衷方案,它使用正值来编码实际摄像机图像中可能出现的大多数颜色。因为即使最饱和的ACEScg颜色仍然是“真实”的,所以这意味着调色操作的数学方式对调色师“感觉”得更好。
ACEScg对艺术家更友好。
因此,专门为计算机图形学创建了另一个色彩空间:ACEScg(AP1原色)。我将以粗体和强调的方式重复一遍,因为它很关键:您只能在_ACEScg中进行_渲染。
ACEScg:终极渲染空间
为什么我们要在一个颜色空间中渲染并在另一颜色空间中显示?有什么意义呢?还记得第1章中的“渲染”空间和“显示”空间吗?我们已经看到它们不必相同。这让许多主管感到惊讶,但是,是的,在不同的主视图中进行渲染不会产生相同的结果**。**
以_线性渲染– sRGB_或_ACEScg_将不会产生相同的图像。许多主管告诉我:“ _如果我们没有监视器来显示它,那么在不同的颜色空间中进行渲染有什么意义呢?_他们错了。在一个颜色空间中进行渲染并在另一颜色空间中进行查看是完全有意义的。
我经常遭到反对ACES的争论:“我们不在乎ACES,我们以线性方式渲染。“
基本上,我们希望使用最合适的色彩空间来获得最佳的渲染效果:ACEScg。这称为宽色域渲染。我们怎么知道这个特定的色彩空间是最合适的?
要进行这样的测试,您需要一个称为“地面真理” 的参考。在我们的例子中,它将是像光谱渲染引擎Mitsuba那样没有偏差的渲染。否则我们不能客观地比较渲染图。
Spectral,Rec.709和Rec。2020年
安德斯 ·兰兰兹(Anders Langlands)和托马斯·曼森卡尔(Thomas Mansencal)进行了一些非常有趣的测试和研究。在这篇文章中对它们进行了精彩的解释。完成了三种不同的渲染:
- Rec.709,所有色域中最小的色域。
- 频谱,地面真相使用波长进行计算。
- 建议2020年,类似于ACEScg。
然后,将它们彼此减去。它越黑,就越接近光谱!太棒了!因此,如果您查看底部的行,则平均值总体上较暗。这意味着建议。2020年_将使我们更接近光谱渲染。
ACEScg和Rec。有什么区别?2020年?在ACEScg的CIE图中没有绿色主键有什么好处?要涵盖大部分P3,ACEScg的色域接近BT.2020,但涵盖了P3。这就需要一个不可物理实现的主要对象:绿色的。
感谢Thomas的解释!
ACEScg说明
在一系列帖子中给出了这种差异背后的技术原因:
从托马斯Mansencal:关于在严格的技术角度来看,渲染引擎确实colourspaces无关。他们只是仔细检查您向他们扔的任何数据,而无需考虑数据存储到的色彩空间。但是,色彩空间及其基色的选择对于实现忠实的渲染至关重要。[…]
如果使用的是sRGB纹理,则将以此特定色域进行渲染(默认情况下)。仅使用输入设备变换(IDT)才能使您在_ACEScg中_进行渲染(或预先进行转换)。
从托马斯Mansencal:[…]一些RGB色彩空间有更适合CG渲染色域,将得到的结果,总体而言将是更接近地面实况全光谱的渲染。ACEScg / BT.2020在这方面已显示出更加忠实的结果。[…]是的,基本向量是不同的,并且BT.2020 / ACEScg产生更好的结果,可能是因为基本向量更清晰,因为基本向量以减少误差的方式旋转。几年前,有几个人(我是其中之一)写过有关它的文章。[…]每个RGB颜色空间都有不同的基向量,其结果是乘法,除法和幂等数学运算不相等。
输入设备转换(IDT)
康奈尔盒子的例子
这是《游击队渲染》中康奈尔盒子的两个渲染图。我为两个渲染使用了相同的sRGB纹理,具有以下值:
- 绿色sRGB主色位于(0,1,0)
- 红色sRGB主色为(1、0、0)
- 中间灰色为(0.18,0.18,0.18)
这些康奈尔盒子之间的唯一区别是渲染空间:
- 在第一个中,渲染空间是许多软件称为_linear的_空间。这实际上意味着具有线性传递函数的_sRGB_色域。
- 在第二个中,渲染空间为ACEScg。我必须正确设置IDT才能充分利用广色域。
该测试要考虑的主要问题是我使用了一些纹理。如果直接在软件中使用颜色,则不会获得相同的结果(尤其是在激活“ _拾色”_角色时)。
在生成mipmap(tex文件)时,您必须格外小心。如果切换渲染空间,则删除现有的tex文件更安全。否则,您可能会得到一些不正确的结果。
多亏了ACES,我们改变了场景的原色,并在渲染中获得了更好的GI。我们可以在Nuke中执行相同的过程来分析实际发生的情况:
- 在左侧,我们有一个纯绿色常数0,1,0。
- 我们使用_OCIOColorSpace_节点将其从_sRGB_转换为ACEScg。
- _ACEScg_中表示的相同颜色在红色和蓝色通道中具有一些信息。这实际上只是一次转换: ACES不会“ 添加 ”任何东西。
转换不会改变颜色。它给出相同的颜色(或色度),但表示方式不同。
这是另一种解释方式:
- 左侧是_sRGB / Rec.709_颜色空间中的绿色主色。
- 使用_3×3矩阵_从_sRGB_切换到ACEScg,已转换了具有唯一XY坐标的颜色。
- 在_ACEScg_颜色空间中,颜色不再是纯绿色(右图)。
多亏了ACES及其转换过程,射线在某些通道(在这种情况下为红色和蓝色)不再被零停止。因此,光路不太可能被空通道停止。
IDT概述
ACES提供了处理这些转换所需的所有3D LUT和矩阵。这就是为什么它如此强大!计算机图形学最常见的IDT是:
- 实用程序– sRGB –纹理:如果纹理来自Photoshop或Internet。仅适用于8位纹理,例如反照率贴图。
- 实用程序–线性– sRGB:如果纹理在sRGB原色内呈线性,并且您想要将其转换为ACEScg。
- Utility – Raw:如果您不希望对纹理应用任何变换,例如法线贴图。
我花了一些时间来理解的一点是,如果您的渲染空间是ACEScg,则在这种情况下,Utility – Raw和ACEScg是相同的IDT。两种选项都不会应用任何变换。
如今,由于Substance Painter中缺少OCIO,大多数工作室都在“惰性ACES”中工作。这意味着我们实际上是在sRGB色域中绘制纹理,然后将它们即时转换为渲染引擎中的ACEScg。
绘制色域
绘制图像的色域可让您根据CIE 1931色度图映射其像素。这是一个非常出色的概念!和调试的好方法!此功能在Thomas Mansencal开发的色彩科学中可用。
- 在第一张图像上,我们绘制了以sRGB完成的渲染。像素显然受sRGB原色限制。它们针对色域的基本向量进行压缩。
- 在第二张图像上,我们绘制了在ACEScg中完成的渲染。像素,尤其是绿色像素不再受到限制,并且提供了更令人满意的色域覆盖范围。
如果要绘制图像的色域,则在Windows和Mac上还有一个名为Color Spatioplotter的应用程序。我自己还没有尝试过,但是从我得到的反馈来看,它似乎可以以非常实惠的价格正常工作。
参考渲染转换(RRT)
关于RRT的段落早就应该提交,并将于2020年第四季度撰写。即使在实践中,RRT + ODT流程对用户来说是结合在一起的,我认为在这里应该描述RRT的某些组成部分:臭名昭著的“甜味剂”。
输出设备转换(ODT)
该学院建议使用适合我们显示器的ODT。显示基于您的项目和监视器:
- 您在电视和互联网上工作吗?您应该以_sRGB_或_Rec.709_显示。
- 您在故事片中工作吗?您应该在_P3中_显示。
- 您要输出UHDTV吗?您应该在_Rec。中显示。_2020年。
建议 2020年显然是未来,但是没有投影仪能够覆盖100%的色彩空间。该技术尚不存在。但是也许十年后,它将成为新的规范。最好的部分是,当这一天到来时,ACES将仍然是一个解决方案,因为它包含了大多数色彩空间。
除非您拥有佳士得,否则还没有。
ODT的示例和比较
这就是为什么ACES看起来如此出色的秘诀!检查第二个渲染器上的高光,它们看起来很棒!
我还对MacBeth图表进行了测试,以比较spi-anim配置中的Film(sRGB)和ACES配置。结果不言自明。
我将其放置在那里以便清楚:如果您的显示器仅覆盖sRGB,则使用P3D65 ACES ODT没有意义。它不会使您的渲染看起来更漂亮。
您的ODT应该基本上与您的屏幕匹配。
ODT澄清
Nuke的默认显示转换使许多艺术家感到困惑:
- 为什么sRGB显示转换和sRGB(ACES)不匹配?
- 因为ACES的ODT包含一些色调映射!
在ACES中,我们将此称为“渲染”步骤,在ITU-R BT.2100(这是HDR电视的标准)中,将其称为OOTF。
大多数艺术家都将此过程称为“色调映射”。
从ACEScentral,尼克·肖解释说:
ACES Rec.709输出变换是一种更为复杂的显示变换,其中包括从ACEScg工作空间到Rec.709 的色彩空间映射,以及色调映射以扩展中间色调对比度并压缩阴影和高光。这样做的目的是在Rec.709 / BT.1886显示器上产生图像,该图像与原始场景具有良好的视觉匹配性。
它不是艺术性的LUT。一点也不。
ODT概述
有些人抱怨 ODT中包含的色调映射。我个人喜欢它。这里有几件事要知道:
- ACES音调映射实际上不是艺术性的LUT。它的值不是任意的,而是主观的。
- RRT / ODT的对比度在精心设置的投影环境中得到了许多非常有经验的行业专家的验证。
- 色调映射在HDR ODT中发生的阴影和高光压缩少得多。
- 在具有不同观看条件的每台设备上, ACES观看转换都是最佳选择。
RRT和ODT样条以及ACES系统色调等级(RRT + ODT)是通过对来自专业观众的大型图像测试集进行视觉测试而得出的。所以不,这些值不是任意的。
来自ACES导师Scott Dyer。
这篇文章中有关RRT / ODT流程的一些其他说明:
- ACES RRT专为观看条件黑暗的戏剧展览而设计。电影的内容倾向于创作更多的对比度以补偿黑暗的环境。
- 即使有环绕声补偿处理(暗<–>暗淡),也可以从主观上获得驱动该处理的值,并且可能不适用于所有情况。
- RRT + ODT也是专家查看者查看图像的结果,因此无可否认地内置了一些主观性。
- 一些公司(例如Epic Games)正在以1.45的增益预曝光“场景引用的值”(这大约与您的灯光中的曝光增加0.55相匹配)。
在此可以找到ODT音阶的另一种描述。
ODT技术说明
当我们使用OCIO配置查看_sRGB(ACES)_时,究竟发生了什么?要转到sRGB(ACES),OCIO首先将颜色转换为ACES2065-1(AP0原色)。然后,通过_AP0,_我们借助 1D LUT 进入称为_Shaper_的色彩空间,最后借助 3D LUT 进入sRGB。
从ACES 1.2 OCIO Config中:
- !
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: !
children:
- ! {src: InvRRT.sRGB.Log2_48_nits_Shaper.spi3d, interpolation: tetrahedral}
- ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear}
from_reference: !
children:
- ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse}
- ! {src: Log2_48_nits_Shaper.RRT.sRGB.spi3d, interpolation: tetrahedral}
在2020年第四季度,我将添加一张ACEScg工作流程的更详细视图的图像。
整形器
ACES Output Transform看起来似乎有些复杂,我将在这里描述2020年第四季度ACES的整形器。
基本上_需要整形器,_因为_3D LUT(甚至64 ^ 3)不适合应用于像ACEScg这样的线性数据。_否则,这只是浪费数据。
交货
对渲染感到满意并完成项目的大部分工作后,就可以交付框架了。在动画工作室中,我们通常将线性exr文件提供给数字实验室,例如这个实验室。
对于ACES,它的概念几乎相同,有几个重要的注意事项。为了最终交付给Digital Intermediate,您必须交付符合ACES的EXR文件。
这是学院制定的在设施之间交换文件的标准。这真的很重要。您的3D渲染输出将为_ACEScg(AP1),_但您的Nuke输出必须为具有正确元数据的ACES2065-1(AP0)。
交换和归档文件应被编写为符合SMPTE 2065-4的OpenEXR。在Nuke中,您应该将“写入”节点的颜色空间设置为_ACES2065-1,_并选中“ 写入符合ACES的EXR ”框以获取正确的元数据。
在ACEScentral中,Doug Walker解释道:
SMPTE ST 2065-4规范“ ACES图像容器文件布局”当前需要未压缩的文件。此外,还有其他限制,例如仅16位浮点数和仅某些通道布局(RGB,RGBA和立体声RGB / RGBA)。对于涉及归档或实时回放的用例,这些限制确实有意义。
ACES实施
ACES,OCIO和CTL
如今,大多数颜色管道都是通过_OCIO_设置的,这非常好,因为它与许多软件兼容:Maya,Guerilla,Nuke,_Mari_和Rv …但是使用_OCIO_和LUT 有一个缺点:精度降低。这篇文章和这里的解释都很好。
CTF表现更好的原因是,它更像是ACES CTL代码的“精确数学”实现,而不是深入到基于LUT的表示形式中。
来自ACES导师道格·沃克。
离散和连续变换
这是怎么回事?答案是我的同事克里斯托夫·韦斯皮瑞恩(Christophe Verspieren)给我的。他向我展示了OCIO烘焙的LUTS中出现的“ _连续和离散”_的概念。实际上,这很容易理解。从此站点检查此图像:
离散和连续是两种计算范例。左侧是我们烤制的LUT。右边的方程式更加精确,因为没有空白可以填补。
当我们从“场景引用”改为“显示引用”时,这意味着要覆盖巨大的动态范围(ACES会产生15个停靠点)。离散变换实际上覆盖了很大的区域。
我们不将动态范围划分为相等的区域,因为我们更愿意以高光为代价详细地划分大多数当前值。因此,显示色调映射(ODT)通过增加曝光使这些假色度真正可见。
同样,即使该转换是在OCIO中数学定义的,它运行在GPU而不是CPU上的事实也会导致公式离散化:图形卡实际上创建了LUT!
确实,这些问题是无止境的……
颜色插值间隙
此外,这些间隙(来自离散化)是线性填充的,这不一定是最自然的方法。即使更改了色域,我们仍然可以在RGB中工作,并且线性插值是在通过A和B的直线上完成的。有时,在Lab色彩空间中管理颜色插值会更好。
并非所有的数学公式在OCIO 1.1.1中都可用,只有OCIO 2.0才能正确表示ACES的必要计算。
把它们加起来 :
- 在每个切片之间,我们有线性插值。
- 在很大的区域,这些插值缺乏准确性。
- 由于离散化,这导致高光中的铬铁矿误差。
这在视觉上如何翻译?让我们看一些饱和度极高的渲染,以比较不同的解决方案。
Nuke中的CTL节点
这有多重要?我们应该坚持使用OCIO还是研究CTL实现?我想我读过的关于该主题的最佳答案来自Alex Fry(再次!):
对于正常曝光的图像,尤其是来自实况摄像机的图像,您不太可能看到与OCIO配置不同的渲染值,但是对于包含极高强度和饱和度的CG图像,您将看到更令人愉悦的滚降和去饱和度。
2016年12月,Alex Fry已经了解了很多东西……
因此,看起来CTL值得使用,尤其是当您制作饱和动画长片时!
如果您热衷于走CTL道路,您可能会问:如果没有OCIO,如何保持色彩管理链?这是一个非常棘手的问题。我没有答案,但是亚历克斯•弗莱(Alex Fry)很乐意 与我们分享这款Pure Nuke ACES RRT&ODT。
这些Nuke节点与纯CTL实现有100%的匹配,但速度更快。请注意,这些节点适用于_ACES2065-1_素材。由于我们使用_ACEScg进行_渲染,因此在插入这些节点之前,您需要使用OCIOColorSpace转换素材。
您还可以从Alex Fry的演示文稿中查看不同的示例。我不知道这些图像是在CTL还是OCIO中生成的。甚至还可以使用FilmLight的 Baselight …但是它们看起来很棒!
渲染引擎中的ACES
大多数渲染引擎都集成了OCIO,这使我们可以访问ACES。Autodesk甚至在Maya中提出了ACES的CTL集成。
但是,听起来可能令人惊讶,OCIO / ACES的集成程度不同。对于大多数渲染引擎,仍基于光谱的计算仍使用sRGB / Rec.709原色,例如:
- 开氏温度(用于灯光,黑体辐射和相机白平衡)。
- 物理太阳和天空。
关于此主题,我最喜欢的报价是:
天光是转换为sRGB / Rec.709原色的光谱表示。
对于大多数渲染引擎来说都是如此。
我在这里使用V-Ray的示例,但这可能适用于大多数渲染引擎:
V-Ray默认使用sRGB原色,但这仅在使用任何可处理光谱的V-Ray功能时才有意义-例如光温度,相机白平衡作为温度,物理太阳和天空。[…]通常,V-Ray将所有颜色都视为三重浮点值。在大多数情况下,V-Ray并不真正在乎这三个数字的实际含义。但是,V射线中的某些计算是基于光谱的。将这些光谱转换为浮点彩色三元组时,假设这三个数字表示某些特定的东西–一种预定义的内部渲染器颜色空间中的颜色。这意味着从开氏温度转换为RGB颜色时,V-Ray必须知道内部渲染器颜色空间是什么。
摘自2016 年的这篇文章。
我很确定开发人员很快就会掌握这些要点。否则,你可以简单地用一个3×3变换从sRGB的 – > ACEScg转换。
ACES OCIO配置的发行说明可在此处获得。
资产转换
手动工作流程
我被问到的最常见问题之一是有关资产转换的问题。我们应该如何处理以_线性sRGB_创建的资产,以将其转换为ACEScg?这是我最近不得不面对的一个例子。假设您正在制作一部着名角色穿着红色的电影。通常,客户会对这个红色值非常挑剔。它必须匹配!
在下一个示例中,我也使用了相同的技术。面临的挑战是要保持从Photoshop中绘制的船概念到ACES渲染中相同的颜色。我知道色彩键和概念的保真度对于许多工作室至关重要。
您在前两个示例中显示的工作流程非常手动,有些棘手。下面将介绍一个更简单的工作流程。至少您同时拥有这两种技巧。
我完全接受这个概念包含一些照明信息的事实。因此在一个地方或另一个地方选择颜色变得任意。我尽力做到尽可能准确。
我将在下面介绍如何从Nuke的较大区域中选择值。
RRT / ODT倒置工作流程
这个话题已经讨论很多 很多 很多 很多 很多的时间acescentral。我们如何将互联网上的图像外观保存到ACES工作流程中?该_颜色采摘_作用,可作为IDT这样做。那是如此强大,绝对是天才。此过程简称为反相LUT。
导入的图像_核弹_用彩色采摘的作用(这是默认设置为输出- Rec.709)只是一种方式来告诉ACES:此图片,无论它来自何方,是我最后的结果 ,我想挑一些ACEScg值。 当您考虑它时,_RRT / ODT_的(几乎)完美的可逆性简直令人难以置信。发生的事情只是一次完美的往返:
- IDT:输出– 709建议-> ACEScg
- ODT:ACEScg->输出记录709
如果您的ODT与Output – Rec.709不同,建议您使用正在使用的ODT修改OCIO配置文件。
否则,往返行程将不完整。
此过程有两个限制:
- 它在非常饱和和极高的值(特别是黄色值)中有些挣扎。例如,您可能最终会得到一些负值。
- 如果您在选择反照率值(例如在Nuke中),则应格外小心,该值在PBR范围内。
- 在_Maya中_使用反向ODT作为“ _拾__色”_角色,您实际上并不知道在渲染空间中使用了哪个值(最可能是ACEScg)。
- 最后,如果在ACES中进行渲染,则仅应在ACES环境中进行颜色选择。
现在,我们可以转到有关“ _拾色”_角色的更深入信息。
选色
我花了一段时间才了解Maya中的“ _拾色”_角色。但是六个月后,我认为终于破解了。首先,什么是**拾色**?
- “ _拾色”_与“ _拾色器”_工具无关。
- _颜色采摘_的_OCIO配置_是一个角色,您可以使用设置任何图像到ACEScg生态系统(不修改的话),并挑选_ACEScg_从它的值。
- 但是_Maya_对“ _拾色”角色的_使用非常有趣。实际上,它使用此角色来设置着色器或灯光中的任何RGB颜色(这实际上是“ 拾色”的意思)。
因此,您可以看到,两个DCC软件以不同的方式回答了一个看似简单的问题。我真正花了很多时间了解的第二件事是:为什么将_Output – Rec.709_用作_拾__色_角色?
好吧,这真的很容易理解。默认情况下,OCIO配置具有此“ _颜色选择”_角色,因为大多数用户将在其查看器中使用ODT Output – Rec.709(或Output – sRGB)。
如果您的ODT与Output – Rec.709不同,建议您使用正在使用的ODT修改OCIO配置文件。
您的ODT和颜色选择角色应该相同。
我们在例子中看到上面的_颜色采摘_在Maya中的角色可以让你设置你的颜色以帐户ACES的ODT是超级用户友好。
选色有哪些作用?
在Maya中,您应该看到Output – Rec.709颜色选择角色,作为绕过ODT进行颜色声明的一种方法。许多用户抱怨他们的颜色被ODT(色调映射过程)修改了。可以将ODT用作颜色选择角色来避免这种情况。
颜色选择角色的真正目的是要知道在哪个颜色空间中选择/声明颜色。它实际上是基于艺术家的喜好。没有更好或更坏的方法。
- 如果希望在ODT之后选择的颜色完全相同,我将选择ODT作为颜色选择角色。
- 如果我认为使用线性sRGB或sRGB纹理更方便,我也可以这样做。
- 所有这些值都将转换为ACEScg进行渲染。
另一种解释方式是:
- 您在互联网上找到一个sRGB值,并希望在ODT之后使用完全相同的值:您应该将ODT用作颜色选择角色。
- 您在互联网上找到了sRGB值,并且不介意通过色调映射修改此值,您应该使用Utility-sRGB-Texture。
- 如果某人想要达到超饱和值(例如激光),则可以选择ACEScg作为颜色选择角色。
假设客户想要一个真正饱和的红色,在sRGB中使用(1/0/0)可能还不够。有些人选择ACEScg是因为他们想知道渲染引擎使用了哪些值。
的确,当您使用“ Output-Something”时,您永远不会真正确定在渲染过程中真正使用了什么颜色。
错误的颜色选择工作流程
这是我听说过的一个非常错误的工作流的示例。请注意,我仅将其作为反例显示!
这些值也是如此:
- 如果您使用_1,1,1_用_彩色采摘_的角色设置为_输出- Rec.709_在Maya中,你实际使用的值_16.29,16.29,16.29_在您的渲染。那是非常错误的!
- 与主值相同。如果你想重现_康奈尔盒_测试_玛雅_采用1,0,0,它不会工作!实际上,您将使用1.24、0.11、0.02(_ACEScg_值),这不是PBR,因为红色值超过了1。
这就是为什么一些工作室将其_Color Picking_角色设置为_ACEScg_以避免在_Maya中_发生此类错误的原因。我不能诚实地说一个系统比另一个更好。您只需要知道自己在做什么。
ACEScg中的颜色选择
如果将ACEScg用作“ 拾色”角色,则应注意这一点:不会有具有这种饱和颜色的非发光表面。只有激光(发射源)才能达到BT.2020原色。
这个特定的例子确实使我更清楚了。当您学习色彩科学时,有时您可能会迷失在抽象的东西中。知道了这一点后,所有这些概念在某种程度上都更加扎根和更加真实。
如果要在ACEScg中进行“ 颜色选择”,则只需要编辑OCIO配置并修改color_picking角色:
roles:
color_picking: ACES - ACEScg
如果您在现实的环境中工作,那么所有这些都与您有关。而且,如果您从事卡通工作,那么……这也关系到您!就像最离谱的饱和度一样,有些生产商在那里。但是大多数卡通电影的外观都让人难以置信。因此,我的建议是以逼真的方式进行外观开发,之后仍然可以将饱和度提高一个等级。
当然,所有这些仅代表一部PBR卡通电影。
如果直接在_ACEScg中_设置“ 基础色”(或“ 漫反射色”),请注意在饱和度方面应有一些限制,这一点很重要。有人可能会问:对于“ _漫反射色”,_适当的限制是什么?
这是我个人的答案:该 指针的色域!在深入了解其定义之前,让我们先退后一步,适当看一下反照率。
ACES的局限性
ACES回顾与改进
2017年3月,一篇出色的论文列出了ACES的许多可能改进: ACES回顾和增强功能。这是一个非常有趣的文档,它导致了ACES组织中的一些变化。这是ACES领导层官方回应的链接。
一个48分,以提高名单也已公布在论坛上和几个创建虚拟工作组已经把表的一些解决方案。ACES几乎还活着并且正在改进。不要犹豫,加入进程!
色相偏斜和后代化
我遇到的两个最大的问题是色调偏斜和后幅化。一些图像制作者认为,观众已经习惯了它,因此不为所动。有些人发现它们确实可怕。我让你自己决定。
我没有故意放绿色的原色,因为我没有注意到太多的效果。
出现此类问题的原因不同。它们是非常技术性的,超出了本章的范围,但是我在这里列出了它们:
- 3×3矩阵只能模拟线性变换。蛮力色域剪辑也可能会引起Abney效果,因为它们是直线。
- 离散的每通道查找使意图偏离。渐近于1.0的任何美学传递函数都会遭受此影响。
- 美学传递函数最终将一堆价值崩溃为相同的价值,因此产生了后期化。ACEScg的不可物理实现的原色也可能是负责任的。
这些概念中的大多数最终都与我们所谓的色域映射有关。我很长时间以来一直认为ODT将以一种聪明的方式重新映射它的色域。不幸的是,事实并非如此,它只是进行3×3矩阵变换并钳位!
的确,P3 ODT通过钳位将值带回其色域,这会引起一些后期分离。这是我们面临非常饱和的值的问题之一。
// Handle out-of-gamut values
// Clip values < 0 or > 1 (i.e. projecting outside the display primaries)
linearCV = clamp_f3( linearCV, 0., 1.);
所有ODT都钳位到目标色域,因此不可能在色域之外有任何东西。在此过程之后以及在传递函数之前的倒数第二步(不会改变此结果)的情况下,假定所有值都在0到1之间。
色域映射
什么是色域映射?适当的显示渲染变换(DRT)应该由两个主要元素组成:
- 色调映射(或强度映射)可在有限范围(SDR)上压缩无限范围(HDR)。
- 色域映射,通过尽可能保持场景的意图,将宽色域(ACEScg –场景)压缩为较小色域(P3 –显示)。
这个过程实际上是非常复杂的,最近几年来为解决这个难题进行了许多尝试:AMD保真度FX,AMD可变动态范围,AMD FreeSync HDR色域映射,冻伤 …或多或少都取得了成功。
除了ICC,实际上没有任何系统可以进行[色域映射]。调色师有责任通过使红色变饱和来解决此类问题。相反,它不一定是ACES的限制。该系统允许您使用极端值,从而以极大的力量来自伟大的责任。这是色域映射将有用的地方。现实情况是,所有技术都超级快速地变化,并且花费大量时间来构建工具。实际上,研究还没有完成:例如,LED嵌入式照明是最近才出现的。
— Thomas Mansencal的一些建议。一个经常被注意到的问题是我们所说的“ 蓝光神器”。在ACEScentral的这篇文章中对此进行了很好的描述。还提供了一个临时修复程序,直到找到更长期的解决方案为止。
结论
每个人都应该与ACES合作。您可能已经注意到,我是ACES的忠实拥护者,希望它将越来越多地被使用。ACES由数十位行业专家开发,可免费获得。没有正当理由不采用它。ACES具有许多优点:
- 通过OCIO与许多软件的兼容性。
- 来自社区的头疼者的自由和很多支持。
- 为了确保在最佳色_域内_进行照明计算:ACEScg。
- 惊人的输出设备转换可减少猜测工作,并提高质量。
- 生成将在多年后仍然有效的数字电影发行主数据(DCDM)。
在我所有的测试中,我从未遇到过ACES不能使外观看起来更好的情况。这样的质量改进:一切看起来都更真实,行为也更正确。
我们与ACES的摄影方法非常接近。电影艺术与科学学院(AMPAS)和ACES社区已经完成了所有艰苦的工作。CG主管和电影摄影师有责任向我们宣传!
这是我对ACES的看法。这是一个广泛的话题,有些人会做出不同的解释。本章中的所有示例实际上都使用了三种不同的色域:
- sRGB_用于纹理化。
- 用于渲染的ACEScg。
- ACES2065-1交货。
把它们加起来 :
- 即使我们的显示器无法显示,也可以在_ACEScg中_进行渲染以获得最佳的照明计算。
- 显示器使用的核弹或RV _显示转换_适合你的项目。
- 使用可以满足您需求的监视器(理想情况下,这应该是故事片P3的 100%覆盖率)。
现在,我们可以转到技术性较低的章节,并专注于摄影。好极了 !
资料来源
- Alex Fry在Siggraph 2015上的演讲。它清楚地向您展示了ACES和CG摄影方法的视觉优势。也有一篇文章。
- 这 三篇 解释ACES的文章对我很有帮助。
- Autodesk的这些文章也帮助我了解了ACES在CG中的应用。Framestore也在使用ACES。
- 关于指针色域的出色文章。
- 你可以找到IDT的列表在这里和有关LMT一些解释存在。
- 在解析,融合和After Effects中对ACES进行了有趣的介绍。
- 如果您想了解更多有关 ACES和ACEScg的信息。这张幻灯片也很好。
- 如果您需要有关广色域渲染的提醒,这些 文章将为您提供启发。史蒂夫·阿格兰德(Steve Agland)也做了一些有趣的测试。当然还有托马斯!
- 如果您对ODT感到好奇,请查看以下两个 帖子或ACEScentral。
- 如果您想获得有关ACES的技术知识,请阅读本文档。
- 像辛烷值中的此示例一样,没有任何东西会弹you您在光谱中进行渲染。
- Siggraph 2017上有一篇关于频谱和ACES渲染的有趣但非常技术性的论文。
- 2015年的ACEScg Digipro。以及Duiker Research的更多文章。
- 关于ACES 的FrameIO博客。
- 虚幻引擎很好地解释 了ACES的使用。
- 羽毛鸟Siggraph 2019关于ACES 2.0。ACES 2.0路线图。
- :关于颜色一个网站colorpipe和法文两个视频:表示德拉传送彩色和学院颜色编码规范。