2022-06-242273次浏览
0评论
18收藏
5点赞
分享
1.光线
2.吸收和散射 - 透明度和半透明度
4.漫反射和Specular反射 - Microfacet理论
4.颜色
5.BRDF
6.能量守恒
7.菲涅耳效应 - F0(0角度菲涅耳反射)
8.导体和绝缘体 - 金属和非金属
9.线性空间渲染
10.PBR的关键特征
光是一个复杂的现象, 因为它可以表现波和粒子的特性. 因此, 已经创建了不同的模型来描述其行为.
作为纹理美术, 我们对光的光线模型很感兴趣, 因为它描述了光与物质的相互作用. 了解光线如何与表面物质相互作用非常重要, 因为我们的工作是创建描述表面的纹理. 我们创作的贴图和材质会与我们虚拟世界中的光线相互作用. 我们越了解光的行为方式, 我们的纹理看起来就越好.
在本指南中, 我们将讨论基于物理渲染(PBR)模型的物理背后的理论. 我们将首先检查光线的行为并着手定义PBR的关键特征.
光的光线模型表明, 光线在均匀的透明介质如空气中具有直线的轨迹. 光线模型还表示, 光线在遇到不透明物体等表面时, 或穿过不同介质(如从空气到水)时行为是可预测的.
这使得可以将光线从其起始点移动到另一个点处的光线的可视化路径变为另一种能量, 例如热量.
撞击表面的光线称为入射光线, 这个角度称为入射角(图01).
光线入射在两种介质之间的平面界面上. 当光线照射表面时, 可能会发生以下一种或两种情况:
1.光线被反射离开表面并以不同的方向传播. 它遵循反射定律, 它指出反射角等于入射角(反射光).
2.光线在一条直线(折射光)的轨迹中从一个介质传递到另一个介质.
此时, 光线分为两个方向:反射和折射. 在表面上, 光线不是被反射就是被折射, 最终可以被任何一种介质吸收. 但是, 材料表面不会发生吸收.
当以不均匀的中等或半透明材料行进时, 光可以被吸收或散射:
当光被吸收时, 光强度随着它变成另一种形式的能量而降低 - 通常是热量. 它的颜色会随着吸收的光量的变化而变化, 但光线的方向不会改变.
光散射时, 光线方向随机变化, 偏差量取决于材料. 散射随机化光线方向, 但不会改变其强度. 耳朵就是这种现象的一个很好的例子. 耳朵很薄(吸收很低), 所以你可以看到散射光从耳背射出, 如图02所示.
如果没有散射并且吸收很低, 则射线可以直接穿过表面. 玻璃就是这种情况. 例如, 假设你在一个干净的游泳池中游泳. 你可以睁开眼睛, 在清澈的水中看到很远的距离. 但是, 如果同一水池相对较脏, 则污垢颗粒会散射光线并降低水的清晰度, 因此可以减少看到的距离.
其他光线在这种介质/材料中传播, 其吸收和/或散射得越多. 因此, 物体厚度在光吸收或散射的程度上起着重要作用. 如图03所示, 可以使用厚度贴图来描述着色器的对象厚度.
Specular反射是指已经在表面反射的光线, 正如我们在光线部分讨论的. 光线被反射离开表面并以不同的方向传播. 它遵循反射定律, 该定律指出, 在完美的平面表面上, 反射角等于入射角. 但是, 大多数表面是不规则的, 并且反射的方向将根据表面粗糙度随机变化. 这改变了光线的方向, 但光线强度保持不变.
较粗糙的曲面将具有较大的亮点, 并且看起来较暗. 更光滑的表面将保持聚焦的Specular反射, 并且从正确的角度观察时, 它们看起来更亮或更强烈. 但是, 两种情况下的总光量都相同(图04)
折射是光线方向的变化. 当光线从一种介质移动到另一种介质时, 它会改变速度和方向的折射率, 或IOR, 是描述在光线行进的方向上的变化的光学测定. 本质上, IOR值用于确定射线在通过一种介质时会弯曲多少. 例如, 水的IOR为1.33, 而平板玻璃的IOR为1.52. 在图05中, 您可以看到一杯放在一杯水中的吸管. 当光线穿过不同介质(空气, 水和玻璃)时, 吸管会因折射而出现弯曲.
漫反射是折射的光线. 光线从一种介质传递到另一种介质; 作为我们的例子, 我们假定它输入一个对象. 光线在这个物体内多次散射. 它最终再次折射出物体, 在最初进入的同一点回到原始介质(图06).
漫射材料是吸收性的. 如果折射光在这种材料中行进太久, 它可能被完全吸收. 如果光线确实离开了这种材料, 那么它可能与入口点仅有很小的距离.
因此, 入口点和出口点之间的距离可以忽略不计. Lambertian模型用于传统阴影的漫反射, 不考虑表面粗糙度. 但是, 其他漫反射模型(如Oren-Nayar模型)确实解释了这种粗糙度.
同时具有高散射和低吸收的材料有时被称为参与介质或半透明材料. 这些例子包括烟雾, 牛奶, 皮肤, 玉石和大理石. 后三者的渲染可以通过额外的次表面散射建模来实现, 其中光线的入射点和出射点之间的差异不再被忽略. 准确渲染具有高度变化和极低散射和吸收的介质, 如烟雾, 可能需要更加昂贵的方法, 如蒙特卡罗模拟.
理论上, 漫反射和Specular反射都取决于光线与介质相交处的表面不规则性. 然而, 在实践中, 由于材料内部发生散射, 粗糙度对漫反射的影响较不明显. 结果, 射线的出射方向与表面粗糙度和入射方向相当独立. 最常见的漫反射模型(Lambert)完全忽略了粗糙度.
在本指南中, 我们将这些表面不规则处称为表面粗糙度(Roughness). 根据使用的PBR工作流程, 表面不规则可以有其他几个名称, 包括Roughness, Smoothness, Glossiness或微表面. 所有这些术语都描述了表面的相同方面, 这是图素级别的几何细节.
根据正在使用的工作流程, 这些表面不规则性会在Roughness或Glossiness贴图中制作. 基于物理的BRDF基于微面元理论, 该理论假设表面由称为微面元(microfacets)的不同方向的小尺寸平面细节表面组成. 每个小平面都会根据其Normal情况以单一方向反射光线(图07).
其表面法线恰好在光线方向和视线方向中间的微面将反射可见光. 然而, 如果微观表面法线和半法线相等, 并不是所有的微面都会起作用, 因为如图07所示, 一些微面会被影子遮挡(光线方向)或遮蔽(视线方向)所遮挡.
微观表面上的表面不规则性导致光扩散. 例如, 模糊的反射是由散射的光线引起的. 射线不是平行反射的, 所以我们认为Specular反射是模糊的(图08).
表面的可见颜色是由光源发出的波长引起的. 这些波长被物体吸收并且Specular反射和漫反射. 剩下的反射波长就是我们所看到的颜色.
例如, 苹果的皮肤主要反射红光. 只有红色波长散射回苹果皮外部, 而其他部分则被吸收(图09).
苹果也具有明亮的高光, 与光源颜色相同, 因为不导电的材料(绝缘体) * 就像苹果的皮肤一样 * Specular反射几乎与波长无关. 对于这些材料, Specular反射从不着色. 我们将在后面的章节中讨论不同类型的材料(金属和绝缘体).
物质PBR着色器使用GGX microfacet分布.
双向反射分布函数(BRDF)是描述表面反射特性的函数. 在计算机图形学中, 有不同的BRDF模型 * 其中一些模型在物理上不合理. 对于一个BRDF, 如果它是物理上是合理的, 它必须是节能和互易的. 互易是指亥姆霍兹互易原则(Helmholtz Reciprocity Principle), 它表明入射和出射光线可以被认为是相互颠倒而不影响BRDF的结果.
Substance PBR着色器使用的BRDF基于迪士尼的规则化反射模型. 该模型基于GGX microfacet分布. GGX在Specular反射分布方面提供了更好的解决方案之一:在高光中较短的峰值和在衰减中较长的尾部, 看起来更真实(图10).
能量守恒在基于物理的渲染解决方案中发挥着至关重要的作用. 这个原理说明了一个表面(反射和散射回来)重新发射的总光量小于收到的总量. 换句话说, 从表面反射的光线不会比它撞击表面前更强烈. 作为美术, 我们不必担心控制能量守恒. 这是PBR的优点之一:能量守恒始终由着色器强制执行. 这是基于物理模型的一部分, 它使我们能够专注于艺术而不是物理.
PS: 用Metallic/Roughness模型才是这样, Specular/Glossiness模型不是一定能量守恒的
菲涅耳反射因子在基于物理的着色中作为BRDF的系数也起着至关重要的作用. 正如法国物理学家Augustin-Jean Fresnel所观察到的, 菲涅耳效应指出, 从表面反射的光量取决于观察角度. 想想一个水池. 如果直视下垂直于水面, 可以看到底部. 以这种方式观察水面, 我们认为将处于零度或Normal入射, Normal就是水面法线. 如果以掠入射角观察水池, 即更加平行于水面, 则会看到水面上的Specular反射变得更加强烈, 并且根本看不到水面下方.
PBR的Fresnel不像我们在传统着色中所做的那样做的(加一个菲尼尔高光), 而是在PBR模型中统一控制. 重申, 这是由PBR着色器处理的另一个物理方面. 当以掠入射观察表面时, 所有平滑表面将以90度入射角以近100%成为反射镜.
菲涅尔效应对于粗糙表面, 反射率将变得越来越高, 但不会接近100%的Specular反射. 这里最重要的因素是每个微面的法线与光线之间的角度, 而不是“宏观表面”的法线与光线之间的角度. 由于光线分散在不同的方向, 所以反射看起来更柔和或更暗淡. 在宏观层面发生的事情与你在集体微观层面观察到的所有菲涅尔效应的平均值有些相似.
当光线直接或垂直(以0度角)照到表面时, 该光线的百分比会反射为Specular反射. 使用表面的折射率(IOR), 可以导出反射的量. 这被称为F0(菲涅耳零点)(图11). 折射到表面的光量被称为1-F0.
T多数常用绝缘体的F0范围将位于0.02-0.05(线性值). 对于导体, F0范围将为0.5-1.0. 因此, 表面的反射率由折射系数决定, 如下式(Lagarde 2011)所示.
这是我们在创作我们的纹理方面所需要关心的F0反射值. 非金属(绝缘体/绝缘体)将具有灰度值, 金属(导体)将具有RGB值. 关于PBR和反射的艺术解释, 我们可以说, 对于一个平坦的光滑表面, F0将在掠射角度反射2%到5%的光线和100%, 如图09所示.
绝缘体(非金属)反射率值实际上并没有非常大的变化. 事实上, 当被粗糙度改变时, 值的实际变化很难看出来. 但是, 这些值存在差异. 在图11中, 您可以看到显示金属和非金属材料的F0范围的图表.
请注意, 非金属的F0范围不会差别太大. 宝石是一个例外, 因为它们具有更高的F0值. 我们将在稍后讨论F0, 因为它具体涉及导体和绝缘体.
在为PBR创建材料时, 从金属或非金属角度考虑是有帮助的. 问问你自己, 如果表面是金属或不是. 如果是这样, 您需要遵循一套指导原则. 如果不是, 你需要关注另一套.
这可能是一种简单的方法, 因为有些材料可能不属于这些类别, 例如类金属(金属和非金属的混合物), 但在创建材料的整个过程中, 区分金属和非金属是一种好方法, 类金属是一个例外. 为了制定材料准则, 我们必须首先了解我们正在努力创造的东西. 使用PBR, 我们可以查看金属(导体)和非金属(绝缘体)的属性, 以推导出如图12所示的这套指导方针.
折射的光被吸收, 金属的色彩来自反射光, 所以在我们的地图中, 我们不会给金属一个漫反射的颜色.
金属是热量和电力的良好导体. 导电金属中的电场为零, 当由电场和磁场组成的入射光波击中表面时, 波会部分反射, 所有折射光都被吸收. 抛光金属的反射率值在70-100%反射率范围内, 反射率很高(图13).
一些金属吸收不同波长的光. 例如, 金在可见光谱的高频端吸收蓝光, 因此它显示为黄色. 但是, 由于折射光被吸收, 所以金属的色调来自反射光. 因此, 在我们的贴图中, 我们不会赋予金属一种漫反射颜色. 例如, 在Specular/Glossiness工作流程中, 纯金属在漫反射贴图中设置为黑色, 而反射值是Specular贴图中的有色颜色值. 使用金属时, 反射值将为RGB, 并且可以进行着色. 由于我们在基于物理的模型中工作, 因此我们需要使用真实世界的测量值来计算贴图中的金属反射率.
金属纹理化的另一个重要方面是其腐蚀倾向. 这意味着风化元素可以在金属的反射状态中发挥重要作用. 如果金属生锈, 这会改变金属的反射状态. 如图14所示, 腐蚀区域在Metallic贴图中被视为由黑色值表示的绝缘材质. 正如我们将在第2部分中讨论的那样, Metallic/Roughness工作流程中的着色器硬编码绝缘体的F0值为4 %反射. 图14显示了BaseColor映射中的生锈区域为黑色, 硬编码F0值为4%.
此外, 涂漆金属被视为绝缘体而不是金属. 油漆作为原材料顶部的一层. 只有从切削油漆中暴露的纯金属被视为金属. 金属上的污垢或任何能够遮蔽纯金属的物质也是如此.
如本章开头所述, 在创建PBR材料时询问材料是否为金属是有帮助的. 更确切地说, 这个问题还应该包括有关金属状态的信息:无论是涂漆, 生锈还是覆盖其他物质如污垢或油脂. 如果材料不是原材料, 则会被视为绝缘体. 根据风化, 可能会在金属和非金属之间进行混合, 因为风化元素在金属的反射状态中起作用.
非金属(绝缘体/绝缘体)是不良导体. 折射光被散射和/或吸收(通常从表面重新出现), 因此它们反射比金属少得多的光量并且将具有Albedo的颜色.
我们前面说过, 根据折射率计算出的F0, 常用绝缘体的值约为2-5%. 这些值包含在0.017-0.067(40-75 sRGB)的线性范围内, 如图14所示. 除了某些非金属材料(如宝石)外, 绝大多数绝缘体的F0值不会超过4%.
与金属一样, 我们需要使用真实世界的测量值, 但是对于其他不透明材料的折射率(IOR)可能很难找到. 然而, 大多数常用绝缘体材料之间的值并没有太大的变化, 所以我们可以使用一些反射值的指导原则. 我们将在本指南后面介绍它们.
基于由IOR计算的F0, 常见绝缘体的值约为2-5%. 你可以看到图15所示的这个范围.
线性空间渲染是一个非常复杂的主题. 对于本指南, 我们将采用简单的方法说明: 线性空间渲染为照明计算提供了正确的数学运算. 它创造了一种环境, 让光线互动以可靠的现实世界的方式呈现. 在线性空间中, 伽马值为1.0, 并且在该空间中线性地执行计算. 为了使渲染的图像看起来正确, 我们需要调整线性伽马值.
我们的眼睛非线性地感知光线值的变化, 这意味着它们的伽玛大于1.0. 人眼对较暗的色调比对较亮的色调更敏感. 计算机监视器用这种敏感度来显示图像, 以便我们可以正确感知它们, 也就是说, 我们使用非线性伽马或伽玛编码空间(sRGB)在显示器上查看颜色.
颜色值和颜色操作的计算应该在线性空间中执行. 该过程将伽玛编码值转换为我们的彩色地图中的线性编码值, 以及通过颜色选择器在显示器上查看时选择的颜色. 在色彩管理工作流程中, 此过程通常涉及标记要解释为线性或sRGB的纹理贴图. 然后在线性空间(gamma 1.0)中执行计算, 并且在伽玛编码空间(sRGB)中查看最终渲染结果.
一个更简单的方法来考虑这一点, 如果贴图代表你看到的颜色(漫反射颜色), 例如金属的颜色或草的绿色, 那么它应该被解释为sRGB. 如果地图代表数据, 例如表面有多粗糙, 或者材质是金属, 则应该将其解释为线性.
在Substance Designer和Substance Painter中, 输入到着色器的线性/ sRGB空间之间的转换自动处理, 并在渲染的视图中对计算结果进行伽马校正. 作为美术, 我们通常不需要担心Substance软件中的线性计算和转换, 因为默认情况下它可以这样做.
当通过Substance Integration插件使用Substances时, 通过集成和实际应用程序的颜色管理自动标记线性/ sRGB空间的输出. 但是, 了解该过程非常重要:如果将Substance贴图用作导出的位图而不是Substance源文件的话, 则可能需要手动将纹理标记为sRGB或Linear, 具体取决于您使用的渲染器.
在“Substance Painter”和“Substance Designer”中使用从sRGB到线性的适当(标准)转换的公式, 定义如下:
**在撰写本文时, Substance Designer中的linear to rgb和rgb to linear节点因为性能优化原因不会使用此公式. 这可能会在未来的版本中发生变化.
为了简单起见, 对于本指南中的所有转换, 我们使用了以下简化(但近似)的转换函数:
现在我们已经探索了物理背后的基本理论, 我们可以推导出PBR的一些关键特性:
1.能量守恒. 反射光线不会比第一次撞击表面时的光线亮. 能量守恒由着色器处理.
2.菲涅耳. BRDF由着色器处理. F0反射率值对于大多数常见绝缘体而言具有最小的变化, 并且在2-5%的范围内. 金属的F0值很高, 从70-100%不等.
3.通过PBR的BRDF: Roughness或Glossiness; 和F0反射率值来控制高光(Specular)强度.
4.照明计算在线性空间中计算. 所有具有伽玛编码值(例如BaseColor或漫反射)的地图通常会被着色器转换为线性, 但您可能必须通过在游戏引擎或渲染器中导入图像时检查相应的选项来确保正确处理转换. 描述表面属性(如粗糙度, Glossiness, 金属和高度)的图应设置为线性.
👇推荐阅读👇
【Substance2018版】官方PBR指南翻译/规范整理
【Substance2018版】The PBR Guide Vol.2实践篇完整翻译
评论 0