9 PBR
Physically Based Shading
9.1 光物理学
光是一种波,波长和颜色相关,记为 λ 。单一波长的光称为单色光 monochromatic light,相反称为 polychromatic light。
可见光的波长在 400 - 700 纳米之间。
光所携带的平均能量称为辐照度 irradiance, 记为 E ,和振幅平方成正比。
光波之间是线性叠加,总的光波等于各光波之和。 两束线性叠加的相同波,振幅是原来的2倍,辐照度是原来的4倍。也可能发生相反叠加互相抵消。这种叠加称为干涉。干涉不违反能量守恒。
发出光的物体叫光源,光是由于电子被激发转化为光能产生的。
光在介质中传播中会发生散射。各个波长的波自行散射互不影响。介质分子对散射有波长偏好,短波散射更严重。分子之间散射的波会发生干涉。
影响散射的几种因素
9.1.1 粒子 分子越聚集,散射越强。同样密度,集聚的粒子提供的散射加成是平方级别,所以集聚的云雾比空气本身散射更强。散射分为瑞利散射、米散射和丁达尔散射。
9.1.2 介质 在均一介质中,光波沿直线前进,但是速度和振幅可能会不同。不同介质中速度的比值称为折射率 IOR,记为n。能吸收光线的介质,光线振幅会变化,振幅减少和传播距离成指数正比,比值称为衰减率 κ ,n + iκ 称为复折射率。折射率和衰减率都有波长偏好。
9.1.3 表面 物体的表面是折射率的分界线,表面的形状和物理成分都会影响光的行为。光在介质发生变化的点发生散射,相位不变的进入物体发生透射,相位相反的光发生反射。透射和反射的光频率不变,波长和光速会发生变化。斯奈尔法则。
折射率的改变也可以是连续的如热空气。折射率相同的物体会隐藏其边缘。
物体微表面有凹凸,远小于波长的凹凸对光线不起作用,远大于波长的凹凸不影响局部的平滑度。
大的凹凸用建模模拟,小的用微平面模型模拟,抽象为粗糙度。
次表面散射
透射的光线进入物体又散射出来,入射点和出射点小于1像素的称为局部次表面散射,用漫反射 diffuse 模拟。大于1像素的称为全局次表面散射。
9.2 摄像机
传统摄像机/针孔相机,机身、光圈、镜头限制了进光方向,所以能够成像。计算机离散地模拟光线,从离散的信号重建连续,所以需要抗锯齿。
9.3 BRDF
BRDF 双向反射分布函数,记作 f(l,v). BRDF与空间位置和入射角出射角的角度相关。一般空间位置即决定了BRDF本身,所以一般入射角和出射角各两个自由度四个参数,各向同性的入射角有三个参数。
反射公式 L(v) = ∫ f(l,v)L(l)(nl) dl ,需要求球面积分。
一般BRDF可以保证能量守恒,不能保证光路可逆。
双向半球反射率 R(l),半球双向反射率 R(v)。如果二者相等则满足光路可逆。
最简单的常数BRDF就是兰伯特公式 f(l,v) = ρ/π.
9.4 光照
全局光照的入射光需要从场景中计算,局部光照的入射光可以直接使用。
点光源的强度和距离平方成反比。
多光源情况下,分别计算再加和。
注意论文里可能忽略的 1/π 因数。
9.5 菲涅尔反射
反射公式 r = 2(nl)n - l.
外反射:光从空气到物体,通常的形式。 内反射:光从物体到空气。
折射率 n 等于 真空光速c除以介质中光速,一定大于等于1. F0 = ((n-1)/(n+1))^2.
菲涅尔效应和入射角相关,出于方便一般以 n 和 l 为参数。
Schick 拟合公式: F ≈ F0 + (1 - F0)(1-max(0,nl))^5. 更复杂的 Schlick: F ≈ F0 + (F90 - F0)(1- max(0,nl))^(1/p).
根据菲涅尔效应不同,材质分为三种:电介质(非金属,电阻率超过 10欧/厘米),金属,半导体。
电介质的 F0 非常低,对波长不敏感,常用值是 0.04. 金属的 F0 非常高,对波长敏感,一般用 RGB 表示。金属会把透射光吸收掉,所以没有次表面散射(diffuse)也不会有透明,所有的可见效果都来自反射。 半导体的 F0 介于 0.2-0.45 之间。如宝石、硅和钛。
9.6 && 9.7 微表面
微表面理论认为物体表面有微小凹凸,可以用统计理论建模。微表面之间会有遮蔽、掩盖和内反射。 微表面也会影响次表面散射。
描述微平面的基本参数: 法线分布函数 NDF ,记作 D(m) 可见性函数 G1(m,v),数学上符合要求的 G1 只有两种:Smith 和 Torrance-Sparrow。 Smith 函数配合 NDF 使用时,需要一个和特定 NDF 相关的 λ 函数。 计算总的 BRDF 时,有 G2 = G1(m,l)G1(m,v),以模拟入射光和出射光两方面的可见性。
总的微平面BRDF中,引入了 h 半向量代表微平面法线 m,因为考虑到镜面反射,只有法线 m 恰好介于 l 和 v 之间的微平面才能被观察到。 D(h) 代表微法线恰好为 h 的分布概率 G2(l,v,h) 代表了从光线角度和视线角度都不受到自遮蔽的概率 F(h,l) 代表了反射强度
9.8 表面反射的 BRDF
离散化的高光反射 BRDF:f = F(h,l)G2(l,v,h)D(h)/(4 | nl | nv | ) |
各项同性 NDF:Beckman, Blinn-Phong && GGX(Trowbridge-Reitz). GTR, SPD, EPD. 各项异性 NDF 可以从已有的各项同性 NDF 导出。
考虑到微表面之间的内反射的 BRDF。
9.9 散射的 BRDF
表面散射(漫反射)仅针对电介质,金属和半导体没有散射(diffuse = 0)。
光滑表面和粗糙表面的光学模型不一样,这里的光滑和粗糙考虑的是次表面散射距离和微表面的尺度之比。 如果微表面尺度较大,就会在微表面尺度上影响SS,需要使用较粗糙(考虑微表面)的散射模型。 如果SS距离较大,微表面就可以视为对SS没有影响,使用较光滑(不考虑微表面)的散射模型。
diffuse 和 specular 之间基于能量守恒,需要分别计算系数再相加。