| [本文大纲] 基础概念篇 引入 光线与介质的作用 光线的传播路径 体积散射和表面光照 光线和介质外观 微平面理论 概念介绍 中间向量 能量守恒定律 微平面理论的不足 光照计算 半球积分 单位光照 反射率方程 BRDF与BxDF 各向同性和各向异性 材质观测 漫反射观测 镜面反射观测 Disney BRDF 概念引入 BRDF的参数化 Specular BRDF Diffuse BRDF Sheen Clearcoat Disney BSDF 概念引入 BSDF的参数化 Diffuse BRDF Specular BSDF Thin BSDF BSSRDF 环境光照 IBL 全局光照 完整光照环境 ue4中的PBR渲染 默认BRDF 次表面散射 双面透明材质 预积分皮肤 次表面轮廓 透明涂层 布料材质 头发材质 眼睛材质 环境光照 |
基础概念篇
引入
我们之所以可以看见这个缤纷多彩的世界,是因为光线从物体上的某个点进入到了我们的眼睛。而我们之所以能够分辨出一个表面是金属、布料或是陶瓷,是因为我们肉眼看到了它独特的外观。
那么,究竟什么是外观(Appearance)呢?更准确来说,我们能够感受到不同的外观,是因为我们感受到了光在介质表面的不同分布情况。也就是说,光进入物体后,由于物体独特的表面属性,光线发生了特定的作用。我们认为这种光在介质上作用形式就是物体的材质(Material)。
光线与介质的作用
我们提到了光和介质的不同作用导致了物体的不同的外观。那么,这种作用具体来说,又是什么呢?
光线的传播路径
当光线照射到物体表面时,我们认为有一部分光线反射(Reflection)出去,也就是改变了传播方向,回到原来的介质中:
这种反射分为不同的情况。一个是镜面反射(Specular Reflection),它描述的是单次反射现象,光线入射后直接反射出去,遵循反射定律(反射角等于入射角)。这更多地发生在金属这样的材质上。
另一个是漫反射(Diffuse Reflection),入射光线反射后会发散到各个方向,这是对多次反射的近似模拟,这里的多次反射指光在物体表面或内部经过多次反弹后,又重新从物体表面出射的现象。因此,严格意义上,只有镜面反射属于直接反射,漫反射本质上来自于折射光。
最后一个特例是逆反射(Refro Reflection),光线会从入射的方向原路直接反弹。逆向反射的发生主要取决于特殊的材质表面形态。
剩余光线折射(Refraction)进入介质内部:
比如光线折射进入水面,这使得我们可以看见水底的东西。
通常情况下,入射光线的单次反射会反射到以法线为轴的对称位置上;而折射方向则取决于介质的折射率(IOR)。
当光线进入介质中时,由于介质本身有微观粒子,光线与微观粒子作用,可能被吸收(Absorption)了,此时光的强度变弱或颜色发生变化,光能转换为其它类型的能量。如果折射率发生突变(小于光波的距离),光会改变传播方向,也就是发生了散射(Scattering)。如果介质内部有其它形式的能量能够转换为光能(与吸收相反),那么就是一种自发光(Emission)现象。
光与物质作用的三种形式:吸收、散射、自发光
其中,从当前位置向其它方向散射,称为外散射;从其他方向向当前位置散射,称为内散射。
另一方面,散射光的分布也有偏向性。如果更多的光沿着前向传播,称为前向散射;如果更多的光沿着与原来相反的方向传播,称为逆向散射。除此之外,还有更多更加复杂的方向分布形态。 在一些比较浑浊的介质(cloudy media)中,散射的光线方向呈现随机性。
除了受内部微观分子性质的影响,散射现象还和观察的尺度有关。我们所处的大气因为较远的距离也能呈现出散射的效应。
当光线进入介质中时,对于金属而言,折射光会被立即吸收,而对于非金属(电介质/绝缘体)而言,光线会在内部继续行进。这种情况在胶体上比较具有代表性,比如大气、水体等。介质内部吸收和散射的不同比例形成了介质的不同外观:
可以观察到,在几乎无散射也无吸收的时候,介质是清澈的;由于介质中特定颗粒与光线发生了作用,随着散射的强度变大,介质变得浑浊;随着吸收强度的增加,光线中特定分量被吸收,光线变弱,颜色发生改变。
在均质介质中,光线的行进方向基本不会发生变化,但它可能具有高吸收性,吸收量会随着光的传播距离增加;而在异质介质中,折射率会发生变化。如果折射率缓慢且连续地变化,则光线会弯曲成曲线。但是,如果折射率发生突变,则光会发生散射,它会分裂成多个方向。
均质介质中,如果光线没有太多的被吸收或散射,光线直接从介质另一侧出射:
从介质不同侧出射的光线我们通常称为透射(Transmittance),表现在材质上为透光性。
比如光线进入玻璃后,大部分又从玻璃另一侧出射,这使得我们可以看见玻璃后面的物体,我们认为玻璃是半透明的。此外,当我们逆光观察像树叶、耳朵这样的薄表面时,会发现表面部分位置透光,这也是一种透射现象。
异质介质中,光线可能经过了内部的多次散射,又重新从表面出射,这种出射可以是介质同侧的也可以是异侧的:
这种情况通常出现在牛奶、皮肤、蜡烛等半透明物体上,我们称为次表面散射(Subsurface Scattering,3S)。光线在介质内部的散射,由于和微小颗粒发生了作用,可能会产生特定的次表面颜色。
表现在材质上为泛光性,比如晶莹剔透的玉石。
次表面散射和我们前面提到的漫反射实际上是同一种物理现象。只不过我们通常认为漫反射的入射和出射点在同一位置,而次表面散射的入射和出射点可以在不同位置。此外,入射和出射点是否在同一位置也取决于我们的观测尺度。也就是说,如果一个次表面散射的材质距离较远,那么它将会呈现漫反射的外观;如果近距离观测一个漫反射的材质,那么它也可以表现出次表面散射的外观。
我们认为绿色圆圈内是一个足够小的距离,假如光线进入和离开的间距分布在这个范围内,我们就近似认为入射点等于出射点 ,我们把上图绿色区域的距离称为散射距离。

体积散射和表面光照
另外,在这里需要澄清的是,当我们在讨论胶体的时候,我们想要强调的是光线与介质微观颗粒的相互作用。当我们讨论次表面散射的时候,想强调的是光线在介质内部经过散射后出射这一过程。
这也就意味着,在某些情况下,我们会关注在光线在介质内部的行进路线,包括它在某个位置散射或是吸收的状态,这通常用于体积散射(Volumetric Scattering)的计算,比如大气颜色的计算,会使用光线步进(Ray-Marching)来模拟真实的光照计算;
而在另外一些情况下,我们会忽略光线在介质内部的传播路径,比如皮肤,我们更关心反射的光线以怎样的贡献比例分布到表面,比如鼻翼、眼角的散射强度是否存在差异。这一部分我们可以将其视为表面光照。
光线与介质外观
我们已经了解到了光线在介质中的传播路径,包括了从介质表面反射和折射进入介质内部。接下来我们来考虑这样的一个问题,光线的不同传播形式造成了怎样不同的外观。
首先再次明确一点,我们之所以能够看见物体,是因为有光线进入了我们的眼睛。只有那些最终被反射(或者透射)出来的光线,才是我们需要关心的。
因此,我们能够观察到不同材质呈现不同的颜色,是因为其它部分的波长都被吸收了,只有特定颜色的波长被反射出去,如下图红色的苹果就是因为把红光反射出去,我们才能观测到苹果是红色的。
此外,我们还能解释天空为什么是蓝色的。太阳光经过大气层时,其中的部分蓝光发生了明显的瑞利散射而布满了整个天空,使得天空看起来是蓝色的;而其余部分的光线直射穿过大气,仍然呈现为白光。
从光学性质来看,我们通常把物质分为金属、电介质和半导体。在PBR中我们通常只考虑金属和电介质。
金属表面是具有光泽的,这是因为金属晶体内含有自由电子,而自由电子可以把所有频率的可见光快速反射出去,F0(垂直入射的反射比例)可达50%到100%,因此我们能看到大部分金属表面呈现银白色或刚灰色的光泽。对部分金属而言,由于还吸收了不同波长的光线,可能会呈现特殊的金属色,比如黄色的金子,赤红色的铜。
金属所有可见的颜色都来自于镜面反射,折射进入金属的光会被立即吸收,因而不会发生漫反射或是次表面散射现象。如图,特殊的金属可能会呈现特别的颜色
我们在金属表面除了能够观察到金属本身的色泽,还能观察到来自外部场景的反射颜色,这来自于环境光照。反射的图像由于金属的平整程度可能会清晰或模糊,表面越不平整,光的反射方向越不规则,这就导致反射图像的模糊。同理,表面的不平整也会导致反射高光的模糊。
电介质是一种绝缘体,由于内部没有具有强反射性的自由电子,只有较少光线反射出去,F0(垂直入射的反射比例)约在2%~7%之间,绝大多数不会超过4%。其余光线得以折射进入介质内部,折射的光线被吸收或散射出去,形成了漫反射或次表面散射的外观。
如图,大部分电介质的反射率都处在一个非常低的范围内
像这种观察到的直接光入射到表面产生的颜色,我们通常称为反照率颜色(Albedo Color),即反射能量和入射能量的比例。对于金属来说,它是镜面反射产生的颜色;而对于非金属而言,它是漫反射产生的颜色。
微平面理论
概念介绍
当我们在讨论介质表面“光滑”或是“粗糙”的时候,我们实际上描述的是物体的微观属性,即介质在微观尺度的光学平坦程度。
我们认为完全光滑的表面是不存在的,像这种理想中完全平坦的表面,我们称为光学平坦表面(Optically flat surface)。光学平坦表面具有一个特性,它可以准确的把光照分为反射和折射两部分。
虽然不存在理想光学平面,但是,我们可以将表面视为由大量微小的光学平面组成,那么表面的外观是具有不同表面方向的多个点的聚合结果,每个点将入射光反射到稍微不同的方向,这就是微平面理论。
微平面理论所定义的微观的存在尺度小于我们的观察尺度,但明显大于可见波长的尺度,因此每个表面点可被视为光学平面。微平面仅适用于单次反射的推导。
我们可以使用法线来描述微平面的方向,因此,微平面的形态就等价于微平面法线的形态。
这种表面的不规则性小于像素(pixel)的层级,因此我们难以直接为其建模,因此我们选择从统计学的角度来模拟它的聚合结构,也就是用法线分布(Normal Distribution)来描述微平面的外观形态。微观法线分布有着紧密或是松散的形态,可能在某些方向上表现出偏向性,不同的表面法线分布对物体外观有着很大的影响。
对于宏观上光滑的介质,不同法线分布对介质的外观有着很大的影响
上图体现了微平面法线分布对介质外观的影响。一方面,反射光线较为集中的地方会形成高光,不同的集中程度导致了不同的高光外观;另一方面,表面越粗糙,反射就越模糊,因为表面方向与整体宏观表面方向的分歧更大(上图中下一排)。
中间向量
我们描述微平面的统计属性的时候,往往会借助中间向量,或者说半向量(half vector)来描述,我们有时候也将其称为微平面法线。
中间向量即光线和视线向量的中间向量。中间向量有一个特殊的特性,即当微平面法线和中间向量一致时,反射方向刚好和视线方向重合。
能量守恒定律
微平面理论准遵循能量守恒定律,出射光线的能量不会超过入射光线的能量。
这种的能量守恒体现在:
① 反射的光线和折射的光线能量总和近似小于等于入射光线的能量;
② 镜面反射的区域越集中,强度也就越高;反之,镜面反射的区域越大,也就越昏暗;
逆向反射和微平面
一些特殊的微平面结构会导致逆向反射的发生,也就是入射光直接从原路径反射回去:
如图,是高散射具有逆向反射性质的微平面。对于具有逆向反射特性的材质,我们从特定方向能观察到明亮的外观,而其余方向则比较暗淡。如左图,视线和灯光方向接近时,观察到明亮的外观,视线和灯光方向有较大差异时,观察到暗淡的外观。
如果微观几何不规则性大于次表面散射距离,则微平面表面不规则的遮挡部分会引起逆行反射效应。这主要发生在粗糙度较高的电介质上。
微平面理论的不足
微平面理论在模拟中存在一些缺陷,主要体现在以下几个方面:
一是微平面理论没有考虑波动光学,我们将光视为光线而不是在波中传播。这使得我们无法为与光的波性相关的光学现象建模,比如衍射和薄膜干涉。
二是微平面理论仅模拟了统计分布的结果,它认为随着视线变化微观几何的法线可见分布是不会发生变化的,这会导致部分微平面拟合的不准确性,如下图。
图中微平面凸起部分是光滑的,凹陷部分是粗糙的。随着观察方向的变化,看到的表面属性会发生变化。上图第一排观察角度较高时,看到的是粗糙的表面,而第二排观察角度较平时,看到的是光滑的表面。
光照计算
在光照计算中,有多种辐射量用来衡量光照属性。
我们把一个光源输出的所有能量称为辐射通量(Radiant flux),光源投射到每单位立体角的能量称为辐射强度(Radient Intensity),光源投射到每单位立体角和单位表面的能量称为辐射率(Radiance)。
计算投射到介质表面某一点的光照,实际上就是计算该点接收到的所有光照的总和。我们称之为辐照度(Irradiance)。
半球积分
接下来我们来考虑对于某一点所有可能的光源分布情况。
我们认为如果光照方向和当前点的法线角度超过90度,那么该光线是不可见的。因此,对于特定点p,我们可以认为入射光线分布在以点p为球心,点p的法线为中心轴的半球上。
因此,如果我们要计算某一点的光照结果,我们需要累加所有反射到该点的入射光产生的影响。由于所有可能反射到该点的入射光分布在反射点的半球区域,因此该过程等价于在半球区域对所有入射光方向进行积分。
我们不总是需要积分,一般来说,有以下一些情况:
① 对于直接入射光,直接计算它对当前点的贡献即可;
② 对于环境光,由于它没有特定的方向,而是来自四周,需要我们对所有可能的入射光方向进行积分;
单位光照
让我们来考虑漫反射的一种理想情况,光线均匀地反射到半球的各个方向。假设光线的辐射通量为L,投射到每个位置的辐射率为l,点的法线为n,法线所在的半球空间为Ω,法线与视线方向的夹角为θ,那么我们沿着半球dw积分,可得:
这里的半球积分可以转化为极坐标的双重积分来计算。求解后可得:

本文深入探讨了迪士尼的物理渲染技术,包括BRDF、BSDF和次表面散射(SSS)的概念。BRDF描述了漫反射和镜面反射,BSDF则引入了透射和次表面散射,而SSS模拟了光线在物体内部的散射。迪士尼BRDF通过法线分布、几何遮蔽和菲涅尔方程来计算反射率,同时引入了光泽度和各向异性参数。文章还讨论了环境光照和全局光照的计算,以及在Unreal Engine 4中实现PBR的各种技术,如次表面散射、双面透明材质、预积分皮肤和眼睛材质的渲染。
最低0.47元/天 解锁文章
1640

被折叠的 条评论
为什么被折叠?



