Advertisement

《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第八章 光和颜色 Light And Color

阅读量:

由于英语基础较为薄弱,在阅读过程中往往显得较为缓慢。
倒不如直接根据自己的理解进行粗浅易懂地整理成笔记形式当作个人学习心得记录下来。
其中不足之处实在太多了,
在以后深入理解后再回来进一步修改和完善。
相信投入在本书上的时间和精力是值得回报的。

———————————————————————————————

因为时间有限,接下来的几章要精简翻译了!!!

——————————————————————————————————————————————————————

“Unweave a rainbow, as it erewhile made

The tender-person’d Lamia melt into a shade.”

如刚才拆解彩虹那般,让光鲜娇嫩的雷米亚黯然失色。

—— 约翰·济慈

在本章里,“我们将深入研究各种物理性质的光线参数”,旨在为其后续章节奠定基础。这些后续章节将从更加注重物理原理的角度探讨渲染技术。“我们还将深入探究渲染流程中的关键环节——其后半阶段所涉及的核心内容:即如何将场景中线性空间中的光线参数对应到最终呈现的颜色上。”

8.1 光量(Light Quantities)

任何物理模拟的渲染流程的第一步都是通过精确的方法来量化光线。 为了阐述光在物理传输中的核心机制,我们首先介绍 辐射度学(radiometry) 理论。 随后,我们探讨了 光度学(photometry) ,它关注的是根据人眼灵敏度加权计算出的人眼可见光量。 人类视觉系统对 颜色感知(color perception) 的理解属于一种复杂的心理物理现象:它是对物理刺激通过视觉系统产生的心理反应。

8.1.1 辐射度学(Radiometry)

辐射度学专注于测量电磁辐射的表现形式及其特性。如同第9.1节将详细阐述那样,这种辐射是以波动的形式传播于空间之中。不同频率(即具有相同相位两相邻点间距)的电磁波动展现出各自独特的属性特征。在自然界中,电磁波动呈现极为广泛的频谱范围,从长度仅及微米量级的能量高能伽马射线,到长达极为宽广数万公里频带内的极低频电波(ELF)。人类能感知的部分仅限于这一频谱区间的一小片区域,其覆盖范围从约400纳米至7×10²纳米红色光谱区延伸而至。参考图8.1可获得直观展示。(注:此处"参考图8.1"应根据具体需求替换为适当引用标记)

图 8.1 显示在整个电磁波谱范围内的可见光的波长范围。

Radiometric Measures are employed to comprehensively evaluate various characteristics of electromagnetic radiation: total energy, instantaneous power (which varies with time), and power density based on either area, direction, or both. These metrics are detailed in Table 8.1.

表 8.1 辐射量及单位。 分别是辐射通量、 辐照度、 **辐射强度、**辐射率

在辐射度学中核心概念是 辐射通量(radiant flux),Φ 。该值表示随着时间与功率的变化而动态变化的辐照度值 是用来衡量系统输出的能量 ,其计量单位采用瓦特(watt, W)。

辐射强度(irradiance)辐射通量相对于单位面积的比例值,并表示为dΦ/dA 。它基于所考虑区域的大小进行计算,并且在实际应用中通常用于描述光照条件下的能量传递效率。具体而言,在实际应用中,“辐照度”指的是照射到物体表面或测量面上的能量密度。“辐射强度”则是衡量这种能量传递能力的重要指标。

在讨论下一个量之前,在阐述立体角(solid angle)这一理论基础时,请注意它是角度概念向三维空间延伸的结果。具体而言,在平面上连续方向集合所形成的角度大小可通过计算该方向集合与半径为1单位长度之封闭圆周所围成弧长来确定其弧度值。类似地,在三维空间中连续方向集合所构成的空间区域大小则由其与半径为1单位长度之封闭球面相交所形成斑块区域面积来确定其测量值——即球面度(steradians, 缩写为sr)。因此,在这种情况下我们通常用符号ω来表示立体角这一概念

在两个维度上,对应一个2π单位弧度所占据整个单位圆。将其扩展至三维空间中,4π平方单位的立体角将占据整个单位球。图8.2展示了这种立体角及其对应的球面度表示。

在该剖面图上切割出一个立体角范围内的扇形区域,在不影响整体计算的前提下可以忽略这一形态特征并不影响后续计算对于表面积计算而言占据主导地位的因素是整个球体表面被均匀覆盖

**辐射强度(radiant intensity, I)**被称为辐射沿方向的通量密度,在更精确的情况下则是立体角(dΦ/dω)中的能量分布密度。其单位为每球面度瓦特。

最后, 该值(radiance, L)代表了单一射线中电磁波的能量强度。 更精确地说,该值被定义为辐射通量在单位面积上的分布情况与单位立体角之间的比值。

该面积位于垂直于射线的方向上进行测量。当涉及垂直于其他方向表面的辐射率时,则必须应用余弦修正因子。可能会遇到用词如'projected area'来定义辐射率的情形。

传感器(如眼睛或照相机)测量得到的辐射率值对于渲染过程至关重要。为了确定沿这条射线(即从着色表面点延伸至摄像机)分布的辐射密度分布情况,我们需要求解着色方程以获得准确的颜色合成结果。具体而言,在该射线上任意一点处所累积的能量密度与其对应的L值之间存在直接关系;这一特性使得我们能够通过分析不同方向上的能量传递来实现对场景光照效果的真实模拟。此外,在第5章中我们介绍了基于物理的颜色表示方法Cshaded;其对应的L值与第5章所述基于物理的颜色表示方法Cshaded一致。此外,在计算机图形学领域中常用的单位换算表明:辐射率的公制单位为每平方米每球面度瓦特(W/m²/ster)。这不仅有助于理解其量纲意义;而且在实际应用中也为我们提供了标准化的能量测量基准参考依据。

环境中的辐射被视作5个变量组成的函数(或者6个变量组成包括波长的情况),称为辐射分布(radiance distribution)。其中三个参数定位其所在的位置。另一个参数则用于表示其朝向的方向属性。这个函数实际上被用来描述所有光线在其空间中的运动情况。渲染过程则可理解为,在观察者所在位置设定一组光线路径(例如通过每个像素发射一条射线),随后在观察者位置上计算每条光线的行为表现形式。在第13.4节讨论基于图像的方法时会遇到相关概念——这一概念被称为光场(light field)

在着色方程中使用的辐射度通常以符号Lo(x, d)或Li(x, d)的形式出现。这些符号分别代表从x点发出或进入该点的光线。需要注意的是,在这种情况下Li可能会引起混淆的原因是由于方向向量d与光线传播的实际方向相反。这是因为对于计算类似点积的操作来说这是一个方便的做法。另外一点值得注意的是,在这种情况下Li可能会引起混淆的原因是由于方向向量d与光线传播的实际方向相反

辐射率的一个本质特征就是其不受距离的影响。 不考虑大气的影响(如雾),换一种说法就是:无论观察者与之的距离多么遥远,在一个表面上都会有相同的亮度表现。 当观察者远离时,在表面上所覆盖的像素数量会减少(但每个像素处的表面辐射强度保持恒定)。

大部分光波的主要成分是由多种不同波长的光波组成。 最直观的表现形式是 光谱功率分布(spectral power distribution, SPD) ,它 呈现了 光能量在不同波长上的分布情况。 图8.3展示了三种典型的案例值得注意的是 尽管图8.3中的中间SPDs与底层SPDs之间存在显著差异 但它们被视作相同的颜色 显而易见的是 在实际应用中 人类的眼睛对普通的光谱仪并不敏感 我们将在8.1.3节中详细讨论颜色视觉的相关理论

图8.3展示了三种不同光波的SPDs(spectral power distribution)。最上方的SPD是基于绿色激光的基础,并呈现出非常狭窄的光谱分布特征。中间部分则是将这种绿色激光与红色和蓝色激光混合使用的结果,在光谱分布上呈现出较为宽广的特点。底部部分采用了标准D65光源作为参考光源,在此情况下所得到的标准 SPD能够很好地模拟自然环境下的可见光谱能量分布情况。

所有辐射量都具有光谱分布这一特点,在波长上表现为密度特性;其具体数值计算方式即原始测量值除以纳米长度。举例而言,在辐照度领域中,辐照度的光谱分布单位明确表示为瓦特每平方米每纳米, 这一指标充分体现了能量在特定区域内的分配效率。

考虑到完整的SPDs在交互速率下难以直接应用到渲染过程中,则在这一条件下辐射量通常被表示为RGB三元组。因此,在第8.1.3节中我们将详细阐述这些RGB三元组与光谱分布之间的关系。

8.1.2 光度学(Photometry)

该学科仅专注于物理量的研究 未涉及人类感官的影响 在另一个相关领域中 Photometry (Photometry)与 Radiometry (Radiometry)相仿 是基于人眼敏感度来测量各种光线特性 的学科

图 8.4 光度曲线。

转换曲线与测量基准是光度理论与辐射理论的主要区别。 每一个辐射量都对应有一个相应的光度计量。 表8.2详细列出了它们之间的对应关系。

表 8.2 辐射计量学与视觉明度的测量及其单位标准。该表列出了四个基本物理量及其对应的国际单位制定义:总光通(total luminous flux)用于衡量光源的整体发光强度;表面亮度(surface brightness)表示某区域每单位面积所获得的光线强度;单位面积亮度(luminance per unit area)则用于描述光源在特定方向上的分布情况;而视觉明度(visual brightness)则反映了人类眼对不同光源的感知差异。

Luminance is typically used to describe the brightness of a plane. For instance, the peak luminance of an HDR television screen is generally between 500 and 1,000 nits. In comparison, a clear sky's brightness is approximately 8,000 nits, while a 6-watt bulb has about 12,965.4773814833333333333 nits. The sun at the horizon has an average of about 6 million nits.

8.1.3 色度学(Colorimetry)

在第8.1.1小节中, 我们已经认识到, 人类对光的颜色感知与其所接收的光谱功率分布(SPD)存在紧密相关性。 然而, 这种关系并非简单的直接对应关系, 即使是图8-3所示的不同SPD曲线也被认为可能产生相同颜色感受效果的现象, 这正是Colorimetry研究探讨的核心内容: 光谱功率分布与其引起的人眼颜色感知之间的内在联系与规律性

人类能够辨识出约 一百万种 不同的颜色。 人类眼睛 是通过视网膜上三种不同类型的锥细胞来感知颜色的,在每一种锥细胞中对特定波长的光有不同的响应程度。 其他生物则根据自身结构具有不同数量的颜色感受器,在某些情况下甚至能达到15个。 因此,在一个给定的SPD值下(即光谱分布),人类大脑仅能接收来自这三种锥细胞三种不同的信号。

但是具体是哪三种数值呢?CIE(Commission Internationale d'Eclairage)这套标准条件被用来制定色彩配准实验。 在调色过程中,三种不同颜色的光被投射到白色屏幕上时会相互叠加而形成一个色块。 图8.5展示了r、g和b三种单色光的测试结果。 这些光线基本上是单一色态的,在这种状态下其能量分布主要集中在特定波长上:红光(r)在645纳米处,绿光(g)在526纳米处,蓝光(b)在444纳米处。 将每组匹配权值与对应测试波长相关联的一组函数则被称为CIE(Commission Internationale d'Eclairage)的颜色匹配函数(color-matching functions)。

图 8.5 r, g, b 三通道的第二度调色曲线。这些调色曲线不容易与用于调色实验的光源光谱分布相混淆,在这里指的是单色光。

这些颜色匹配函数将光谱功率分布转换为三组数值。任何给定的光谱分布在经过颜色匹配函数处理后会得到三组相应的数值来设置光线的颜色以使其与人眼感知的颜色一致。由于不同的光线波长组合都可以被分解成相同的三种权重系数在观察者看来它们呈现的颜色是相同的。具有相同权重系数组合特性的光线波长集合被称为 条件等色(metamers)

由于三种赋权红绿蓝(r,g,b)光线不能直接代表所有可见颜色(因为它们的颜色匹配函数在某些波长上赋予了负赋值),因此CIE基于三种不同的假设光源进行了研究(这些假想光源的颜色匹配函数在整个可见光谱范围内赋予了正赋值)。这些曲线是基于原始r,g,b颜色匹配函数进行线性组合得到的结果(这种构造方式要求光源功率分布于某些特定波长时出现负值情况),因此这些光线在实际中无法实现(它们属于不可行的理想化数学构造)。他们的颜色匹配函数如图8.6所示(其中Y与亮度曲线相同),这是因为这种关系将辐射率转换为了亮度表示。

图8.6 Jdd-Vos-修改后的CIE(1978)二次元色彩配色函数。请注意其中这两个X区域位于同一曲线中。

与前面颜色匹配函数作为对比而言,x(λ)、y(λ)以及z(λ)是利用乘法和集合运算将任意SPD(λ)降到三个数值上的方法

这些**X,Y,Z三色值(tristimulus values)**是在CIE XYZ空间中定义颜色权重的重要参数。方便地将颜色划分为亮度(luminance)与色度(chromaticity)。其中,
色度特指不受明暗影响的独特属性
例如,在两种深浅不同的蓝色中,
一种较暗而另一种较亮,
它们具有相同的色彩属性,
尽管呈现出不同的明暗程度。

为此目的,CIE通过将颜色投影到X+Y +Z = 1平面上来定义一个二维色度空间.如图8.7所示.该二维色度空间中的坐标变量命名为x和y,其计算方法如下:

z值无法补充额外的信息数据,在此情况下通常被省略。该方法采用CIE 1931颜色模型中的x,y坐标系来构建颜色度量表。如图8.8所示。曲线轮廓清晰地展示了可见光谱所占据的颜色范围。连接光谱两端端点的直线被称为紫色线。黑点标识光源D65在颜色空间中的位置——这种位置用于定义白色或无色刺激

图形8.7展示了CIE RGB三原色在XYZ空间中的RGB颜色立方体及其在此X+Y+Z=1平面上的投影区域(以紫色表示)。蓝色轮廓线代表了所有可能覆盖的颜色范围;从坐标原点延伸出的所有射线都对应着相同的色调。

图表 8.8 CIE 1931年色度图。 曲线被相应纯色的波长所标记。 白色形状符号代表sRGB颜色空间中的调制范围;黑色圆形则表示Rec.709标准中的调制范围

通过实验研究发现,在处理不同波长的光谱时采用了三种单色光作为基础光源,并通过测量每一种单色光所需强度以匹配其他波长的光。在此过程中为了实现精确匹配有时需要将纯度较高的单色光添加到待测样本中从而建立一组颜色匹配函数这些函数能够确保最终生成的颜色具有非负值特性。随后将这些函数组合以生成一组无负值的新颜色匹配函数基于此我们得以将任何复杂的光谱分布转化为XYZ坐标系所对应的三基色坐标值其中XYZ坐标系则可简化为xy平面用于表示色度信息而亮度保持不变

对于任意给定的颜色坐标 (x, y),我们绘制一条直线连接白点与该坐标至边界(由光谱曲线或紫色界限构成)。该比例关系即代表了该色块相对于其所在区域边界的激发出色纯度(excitation purity)。位于区域边界的各个点则决定了该区域的主要波长。这些通常用于图形学中的色度参数较少涉及相关概念,在此领域中我们主要采用饱和度(saturation)和色调(hue),它们分别对应于激发出色纯度与主要波长之间具有较为松散的关系。

色度图用于表示一个平面。
要完整地描述一种颜色所需的高度维是Y值...这些参数组合形成了xyY坐标系。
了解渲染中如何运用颜色及其对渲染系统限制的基础性工具。
电子设备如电视或计算机显示器通过设定RGB三原色数值来生成显示图像。
每个通道负责驱动特定的显像基色元素。
三种基本色调根据各自的数值强度被调整并叠加生成单一色调。

色域(gamut)这一概念中使用斜体符号...进行标记后指出:该图形中的三角形代表主流电视或计算机显示器所覆盖的颜色范围(即色彩空间)。这三个顶点分别对应红、绿与蓝这三种基本颜色;这些是最纯度最高的RGB颜色通道能够表现出来的饱和度最高的颜色组件。值得注意的是,在这种情况下所得到的颜色均被限制在由这三个基本颜色混合而形成的连续色调范围内。具体而言,在这种情况下所生成的颜色均位于由这三个基本颜色混合而成的颜色连线上;而当红、绿、蓝(RGB)颜色值相等时,则会呈现出一种特殊的白色状态——通常被定义为纯白色或纯度最高的白色光谱位置;值得注意的是整个色彩空间呈现一个三维结构形态;然而在实际应用中我们只能将其二维化地反映出来。

图8.9展示了CIE 1976 UCS图中三个不同的RGB颜色空间(sRGB、DCI-P3和ACEScg)的原色与白点位置关系。由于两者具有相同的原色与白点配置原因,在这种情况下sRGB绘图同样适用于Rec. 709.

在图8.9所示的三个RGB空间中,在实时渲染领域内sRGB仍然是最常用的颜色空间。值得注意的是,在本节中我们采用"基于sRGB的颜色空间"这一术语来指代具有sRGB三基色分量以及白色参考点的线性颜色空间概念;与第5.6节讨论的非线性sRGB色彩编码不同。大多数计算机显示器都是专为sRGB色彩空间设计的;同样具备相同基色分量和白色参考点的是Rec. 709色彩空间(Recoding),该标准被用于高清电视显示设备;这对于游戏机系统来说非常重要。然而更多的显示器采用了更为宽广的颜色范围

将RGB空间转换为XYZ空间的过程是线性的,并且可以通过生成并应用包含RGB原色和白点信息的矩阵来完成这一过程。通过转置矩阵并进行组合操作后,则可以实现从XYZ向量到任意指定的RGB颜色系统的变换;或者在两个不同的RGB系统之间进行相应的颜色变换操作以达到目标效果。需要注意的是,在这样的变换过程中所得出的颜色值可能会出现负值或超过1的情况;这些超出标准范围的颜色会被视为无效数据,并且无法直接在目标系统中被复制或使用;因此需要采用多种处理方法将这些超出范围的颜色值映射回目标系统的合法范围内。

一种常见的做法是将 RGB 颜色值转化为 灰度亮度值(grayscale luminance value) 。由于亮度与 Y 分量数值一致,则此操作仅涉及该颜色通道的数值计算。换句话说,它等于将该颜色通道的数值与对应的矩阵行相乘后求和的结果。对于 sRGB 和 Rec. 709 空间来说,则遵循如下公式:

这一过程引导至光度曲线(见图8.4)。该曲线描述了标准观察者眼中对不同波长光的响应特性,并通过叠加三个原色光谱功率分布得到三条结果曲线。这些结果所赋有的权重构成了亮度方程的基础。由于眼睛对不同波长的敏感度不同(如前所述),红色、绿色和蓝色通道中的灰度强度值也呈现出不等的比例关系。

色度学 用于判断两种颜色刺激的一致性与差异性特性, 但无法预判其外观视觉效果. XYZ颜色空间中的物体色彩呈现主要受照明条件、环境色系以及前期设置等因素的影响

色彩感知模型是更为广泛的视觉感知领域的一部分,并涵盖诸如**掩蔽(masking)**一类的效应

8.1.4 用RGB颜色渲染(Rendering with RGB Colors**)**

从严格的定义上说,在计算机图形学中RGB值本质上反映的是人类视觉系统的感觉结果**(perceptual sensation)而不是直接对应的物理属性(physical properties)。因此,在技术应用中将这些值用于模拟基于真实物理特性的图像生成存在根本性错误。为了获得准确的视觉效果表现效果良好的解决方案应当建立在对光谱数据的完整处理基础之上无论是通过密集采样的高保真模拟还是采用基于波长编码投影的方法最终都将结果转化为符合标准(standard RGB color space)**的颜色表示形式

如常见的渲染操作之一是计算物体的反射光。物体表面通常会反射某些波长的光线比其他波长短,这种现象可通过其特定的光谱镜面特性曲线来描述。为了精确地计算出被镜面反向后的光线颜色,需要将入射光线的空间频率分布(SPD)与每个波长对应的曲面镜面特性相乘,随后再将所得出的空间频率分布转换为RGB颜色空间表示。在标准RGB渲染器中将入射光线的颜色与表面材料的颜色进行分量相乘运算,即可得出被镜面反向后的光线颜色值。然而,这种方法在一般情况下无法得到准确的结果,因为实际环境中的光照条件往往较为复杂,仅凭简单的分量相乘无法充分模拟真实场景中的光照交互效果。为了更好地理解这一概念,我们可以通过图8.10所示的具体案例来进行深入分析

图8.10顶部的图表展示了用于投影屏幕的一种新型材料及其光谱反射特性。下方两幅图分别揭示了两种相同RGB颜色光源在光谱功率分布上的差异:中间的是基于RGB激光投影技术的设计方案;底部则是采用D65标准光源的标准配置。该材料能够有效反射约80%的入射光(这一数值由其独特的表面结构决定),其高反射率主要归因于存在与主光源色波峰值高度一致的特定反射峰区域。然而,在面对D65光源时(即能量主要集中在非主色调区域),这种材料只能将约20%的能量有效利用(其余能量因未落在最佳反射频段而被损耗)。对于这一典型场景而言,在进行RGB渲染时会发现两种不同光源经材料处理后的输出强度呈现出高度一致性

我们采用了基于激光投影仪设计的一种屏幕材料。该材料具备窄波段高反射率特性——这种特性旨在与激光投影仪使用的波长以及大多数其他波长对应的较低反射率相匹配。这使得该材料能够显著地将来自激光投影仪的主要光线反射回去,并有效地吸收了来自其他光源的所有光线。在这种情况下,RGB渲染器会导致严重的性能问题

图8.10所示的情况并非典型的示例。在实际应用中遇到的曲面光谱反射率曲线通常更为平滑(如图8.11所示)。典型的光源光谱分布(SPD)通常与D65白光LED接近,而非例子中的激光投影仪使用场景。当光源的SPD和表面材料的光谱反射特性均为光滑时,基于RGB值的渲染误差相对较小

图 8.11 黄色香蕉的光谱反射率。

在预测性渲染系统中,微小的误差可能具有重要意义。例如,在同一光源照射下,两种光谱反射率曲线的颜色外观可能相同;但换用不同光源时,则可能出现差异。这一现象被称为metameric failure或illuminant metamerism,在汽车车身部件喷涂工艺处理时就会引起高度关注。 RGB渲染方法在这种情况下并不适用。

8.2 从场景到屏幕(Scene To Screen)

本书接下来的几章将专门探讨基于物理的渲染问题。对于给定的一个虚拟场景而言,在真实场景中出现的亮度将是基于物理渲染的目标。

8.2.1 高动态范围显示编码(High Dynamic Range Display Encoding)

本节的内容建立在第5.6节的基础上,5.6节介绍了显示编码。

本节5.6主要探讨了**标准动态范围(SDR)**监视器的显示编码方案。这些设备普遍采用sRGB显示标准配合SDR电视。其中使用的SDR电视则基于Rec.709与Rec.1886两种标准。两者在RGB色域和白点(D65)方面完全一致,并且采用了类似但非完全相同的非线性亮度曲线。它们也具有相近的标准白色亮度值:sRGB对应80 cd/m²(D65),而Rec.709与Rec.1886分别对应100 cd/m²。然而这些亮度规范并未得到显示器制造商和电视制造商严格的遵循。实际上这些设备更倾向于生产具有更高白色亮度值的标准。

HDR显示采用了Rec. 2E-4和Rec. 7E-4两种标准。其中Rec. 7E-4被定义为包含一个显著扩大色域的颜色空间,并采用了相同的白点设置(D65)。而Rec. 7E-4则定义了两个非线性编码方案:感知量化器(PQ)混合对数Gamma(HLG) 。值得注意的是,在渲染场景中HLG的使用较为少见,在这种情况下我们主要聚焦于PQ这一方案,并明确指出其最大亮度参数为最高亮度值(即1×1e4 cd/m²)。

图 8.12 展示了 CIE 1976 UCS 图谱, 呈现了 Rec.2020 和 sRGB/Rec.709 颜色空间的色域及其白点(D65)位置。同时提供了 DCI-P3 的颜色域范围作为对比参考

尽管对于编码目标而言,峰值亮度与色域规范具有关键的重要性,在实际显示效果上,则尚且难以尽如人意。 其实不然的是,在相较于 Rec. 2020标准而言,在从标准规范到实际显示性能方面 HDR 显示器的表现均较为出色。

在应用程序端面面,则存在三种不同的图像处理方案可供选择用于将图像转码为HDR显示模式;然而由于不同设备的显示特性以及操作系统的具体实现细节的不同;并非所有方案均可通用

HDR10技术广泛应用于配备HDR显示技术和相关操作系统的设备中。该格式采用每像素32位的存储方案,在每个RGB通道中配置为10位无符号整数,在alpha通道设置为2位无符号整数。该格式运用PQ非线性编码与Rec.2020色彩校正方法,并由不同HDR10显示设备依据各自的配置独立进行色调映射处理以适应各自的颜色空间需求。

2. scRGb(线性版本)——仅限于Windows系统适用。
本质上基于sRGb三原色与白电平(white level),但允许超出[−0, +0]范围的 RGB 值。
存储格式中每个通道为 16 位,并包含线性 RGB 数值。
该存储格式可通过驱动程序转换为 HDR-10 格式,并可与任何 HDR-10 设备兼容使用。
其主要特性在于其简便易用且兼容 sRGb。

采用杜比视觉技术(Dolby Vision)进行图像处理。该技术尚未得到各主流显示器厂商及相关设备制造商的广泛支持。其帧缓冲单元采用的是每个通道定制化的12-bit深度,并结合了PQ非线性和Rec.2020色域两种编码方案以实现高动态范围显示效果。显示系统内的色调映射采用的是基于叉积的标准模型而非基于点积的方式

8.2.2 色调映射(Tone Mapping)

在5.6节以及8.2.1节中讨论了显示编码这一主题,在该主题中我们探讨了以下过程:即显示设备将线性辐射度转换为非线性的代码表示的过程。其使用的函数是基于**电光传递函数(electrical optical transfer function, EOTF)**基础之上所建立起来的反向关系式,在此过程中我们得以确保输入端的数据呈现完整的线性和输出端相应的视觉效果呈现高度的一致关系

tones_mapping 或 tone_reproduction 被定义为 将场景中的辐射度值转换为适合屏幕显示的辐射度值的过程,在此过程中所使用的转换关系被称为 end_to_end_transfer_function 或 scene_to_screen_transform。掌握 tones_mapping 的核心概念对于理解其运作机制至关重要。有两种基本类型的 image_states:场景参考图像 scene_referred_images 是基于场景中的辐射度值定义的;而显示参考图像 display_referred_images 则是基于屏幕上特定设备的参数定义的。值得注意的是 image_states 与数据编码方式无关,在这两种状态下图像既可以采用线性编码方案也可以采用非线性编码方案。图8.13清晰展示了 image_state tones_mapping 和 display_encoding 如何协同工作以实现从渲染到屏幕展示的颜色信息转化过程。

图 8.13 展示了合成(渲染)图像的成像管线。我们对线性场景中的参考辐射率进行渲染,并将其色调映射至对应的线性显示参考辐射率。随后经过显示编码处理,通过应用EOTF逆函数将这些线性显示辐射率转换为非线性编码数值(编码值)。最终传递给显示器后,在其端执行EOTF函数处理,将这些非线性显示数值转换为从屏幕发射到眼睛的真正的线性辐射率数值。

对色调映射的目的存在诸多误解。 首先,并非旨在实现场景至屏幕的恒等变换以完美再现亮度值;其次也不等于将每个像素的信息从高动态范围压缩至低动态范围进行处理;然而需要注意的是这并非主要目的。

要掌握色调映射的目标,可以将其视为图像再现的一个实例.图像再生旨在 在特定显示属性和观看条件下, 最佳地再现出 原始显示参考图象, **即观察者基于其对原场景的感知而形成的视觉感受.**参见图8.14.

图 8.14 图像再现旨在最大限度地接近原场景(左),右侧再现图像所引发的视觉感受应尽可能接近。

视觉系统能够补偿绝对亮度差异 ,这反映了一种**适应机制(adaptation mechanism)**的存在。 在这种机制的作用下,在较暗的环境中,在屏幕上呈现的真实场景能够在主观感受上模仿户外实际场景的特点得以实现;尽管如此,在低光环境下所呈现的画面亮度仅为原生场景亮度的百分之一左右。 然而这种适应机制所具备的功能尚显不够完善:当光线强度较低时不仅对比度感知水平显著下降(史蒂文斯效应),而且色度感知水平也出现了明显降低(亨特效应)。

然而这种对比的增长加剧了现有技术面临的挑战。 因为场景的整体亮度范围远超显示设备的能力限制 为了维持画面质量 必须将可显示亮度限制在非常狭窄的范围内以维持画面质量 这种限制会导致在较暗区域出现过曝而在较亮区域出现欠曝的问题 提升对比度会进一步压缩可用亮度范围 为了缓解因亮度限制导致的画面失真 研究人员采用了渐变灰度处理方案 这种方法能够部分恢复被裁剪掉的一些阴影细节以及高光区域的部分信息

曝光( exposure **)**对于色调映射起着关键作用,在摄影学中它指的是影响胶片或传感器上光线量的因素,在渲染流程中则是在色调还原变换处理之前对场景进行一次线性缩放处理以确保正确显示效果。指数值选择上存在一定的难度由于色调还原变换与曝光过程紧密相关因此两者之间需要达到最佳平衡点以实现理想的视觉效果

根据曝光率进行调整后,并通过色彩还原变换实现的整体色调映射过程是一种将统一的调色方案施加于全部像素的方法。与之相比,在考虑邻域像素信息及其他因素的影响下形成的局部色彩还原过程采用的是针对单个像素独立设定调色策略的方式。在实时渲染技术中这一方法被广泛采用并取得了显著效果

需要记住,在基于场景参考的图像与显示参考的图像之间存在本质差异。物理操作仅在处理基于操作场景的数据时才具有有效性。由于显示设备的局限性以及我们之前探讨的各种感知效果 ,这两种图像状态之间往往需要应用非线性变换。

色调再现变换(Tone Reproduction Transform)

色调再现变换通常用作一维曲线来表示场景中的输入值与显示中的输出值之间的映射关系 。这些曲线不仅可以在R、G、B通道上使用,在亮度处理方面同样也可以进行操作。在上述情况下(即每个显示引参考RGB通道的取值范围都在0到1之间),其结果会自然地落在显示的颜色域内。当对RGB通道进行非线性处理(如裁剪)时……这可能会影响饱和度和色相,并且可能导致预期中的亮度变化。

经应用色调曲线至亮度处理后,则可防止色相与饱和度的变化(至少能有所减少),然而,在某些情况下(如参考颜色超出当前RGB范围),需将该颜色值重新映射回原RGB色域范围内。

在色调映射过程中可能存在的一个问题是使用非线性函数对场景参考像素的颜色进行处理时可能会引发某些抗锯齿相关的问题。这个问题及其解决方案将在第5.4.2节中进行详细讨论。

曝光(Exposure)

计算曝光度的常见方法基于场景中的光照强度数据。为了防止画面出现拖尾现象,在实时处理中通常会从上一帧中提取样本作为分析依据。

根据Reinhard等人的建议,在早期实现中使用的一个重要指标是对数平均场景亮度( log-average scene luminance 。曝光通常通过计算帧数的对数平均值来确定。这一过程涉及经过一系列下采样的后处理步骤以获取每个帧的具体数值。

平均值在面对少数异常像素时表现不佳,在某些情况下过亮的像素可能会导致画面整体过曝。随后对此问题进行了优化,并转而采用 亮度分布直方图 作为新的计算基础。与之前的方法相比,这种统计方法更加稳健——因为它不仅能够计算中间值更能反映数据分布的整体特征。此外,在直方图的基础上进一步引入更多统计数据也能显著提升结果的质量

到目前为止讨论的技术的问题是基于像素亮度作为曝光错误量度的不足。 在摄影实践中, 例如安塞尔·亚当斯的调色区系统和入射光度计是如何被用来设定曝光, 很明显, 最好单独使用光照(不考虑表面反照率的影响)来确定曝光, 这种方式是可行的, 约而言之, 摄影曝光的作用是抵消光照的影响。 这使得物体表面的主要颜色符合人类视觉系统的 颜色恒常性(color constancy) 。 以这种方式处理曝光同样能够确保给色彩转换赋值的正确性。 例如,在电影或电视行业中常用的色调转换方案通常将曝光场景参考值0.18映射到显示参考值0.1, 在主要场景照明下0.18表示18%灰度卡的价值。

在许多游戏中,静态曝光级别是按照已知场景照明值对环境各部分进行手动调整的参数设置方式。通过这种方式可以消除潜在的光照波动影响。

8.2.3 颜色分级(Color Grading)

在8.2.2节中, 我们详细阐述了该方法的核心理念——择优图像再现的概念, 即生成看起来比原始场景更好的图像, 这一过程涉及对图像颜色进行创造性的操作, 被称为颜色分级(color grading)。

Selan阐述了他所使用的颜色预处理方法的具体步骤,并将其应用于基于**颜色查找表(look up table, LUT)的技术中。通过将输入RGB值作为x-、y-和z-坐标的参数,在查找表中定位所需的颜色值以建立映射关系。这一过程首先涉及创建一个将每个输入颜色映射到目标颜色的空间分割机制(slicing),随后将该机制加载到相应的图像编辑程序中以便进一步处理与显示相关的操作。需要注意的是,在处理LUT时必须避免空间操作如模糊化等操作以免影响最终效果。经过优化后编辑过的LUT被打包成三维GPU纹理并应用于渲染引擎以实现高质量的颜色转换效果。Iwanicki则提出了一个有效的方案以利用最小二乘最小化(least-squares minimization)**方法来减少在构建 Lookup 表时所引入的采样误差

在后续出版物中,Selan将其对执行图像色彩层级划分的方法进行了分类。其中一种方法是基于显示参考图实现的数据色彩层级划分;另外一种则是基于通过预览功能可辅助完成的操作流程。值得注意的是,在基于显示参考的方法中虽然操作简便直观,在实际应用中采用基于场景数据的颜色划分策略能够获得更为逼真的效果。

图 8.16 展示了游戏《神秘海域4》中的一个典型场景。 最顶端的游戏截图未采用任何颜色分级技术。 其余两个截屏均采用了颜色分级操作。 在此处采用了极其强烈的颜色分级策略:将图像乘以高度饱和度的青色。 左下角的截屏中,颜色分级技术应用于后色调映射版本;而右下角的截屏中,则是前色调映射版本采用了同样的颜色分级技术。

全部评论 (0)

还没有任何评论哟~