PBRT-辐射度量学

PBRT-辐射度量学

概述

辐射度量学是对辐射能量传递的现象学研究,假设几何光学(geometric optics)是描述光和光散射的合适模型,这引申出一些关于光行为的基本假设:

  • 线性:光学系统的两个输入的组合效果等于每个单独输入效果的总和

  • 能量守恒:当光从表面或参与介质散射时,散射事件永远不会产生比开始时更多的能量

  • 无极化:忽略电磁场的极化,因此,光的唯一相关属性是按照波长(或频率)的分布

  • 无荧光或磷光:

    荧光是指物体吸收其他不可见波长的辐射时进入激发态,并且退激发并发出出射光,持续时间短,注意该定义与一般情况下定义的微弱的光亮有区别

    磷光是指轰击辐射停止后持续存在的荧光

    无荧光或磷光是指一个波长的光行为完全独立于其他波长或时间的光行为。与极化一样,包含这些影响并不困难,但是他们对系统的实用价值相对较小

  • 稳态:假设环境中的光已经达到平衡,因此其辐射分布不会随着时间变化,现实场景中,这几乎是在光线下瞬间发生的,因此在实践中不受限制,磷光违反稳态假设

  • 采用几何光学模型无法考虑衍射和干涉效应

基本量

渲染核心的四个辐射量:通量(flux)、辐照度(irradiance)或辐射出射度(radiant exitance)、强度(intensity)和辐射度(radiance)。它们都可以通过在时间、面积和方向上依次取极限来从能量中导出。所有这些辐射量一般都依赖于波长

能量(Energy)

单位:焦耳($J$)

照明源发射光子,每个光子都处于特定波长,并且携带特定数量的能量。所有基本的辐射量都是测量光子的有效方法,波长为$\lambda$ 的光子携带能量为:

image-20220703121631858

$c$是光速,$299,472,458m/s$,$h$是普朗克常数,$h \approx 6.626 \times 10^{-34} m^2 kg / s $

通量(Flux)

单位:焦耳/秒($J/s$)或瓦特($W$)

辐射通量,也称为功率,是单位时间内通过表面区域或空间区域的总能量。辐射通量可以通过对每个微分时间的微分能量的极限求得:

image-20220703122116769

相反,给定作为时间函数的通量,我们可以对一系列时间进行积分以计算总能量:

image-20220703122451893

光源的总发射量(emission)通常用通量来表示,对于点光源来说,通过任何一个球面的通量是相同的

注意,考虑通量的时候不关心面积,即不需要知道光照面积的大小,只关心某个时间内能量的大小

辐照度和辐射出射度(Irradiance and Radiant Exitance)

单位:瓦特/平方米($W/m^2$)

任何通量测量都需要一个区域,在该区域上测量单位时间的光子。给定一个有限区域$A$,我们可以通过$E = \Phi / A$定义该区域的平均功率密度。这个量要么是辐照度($E$),即到达表面的通量的面积密度,要么是辐射出射度($M$),即离开表面的通量的面积密度。有时辐照度也可以指离开表面的通量

可以通过在点$p$处取每个微分区域的微分功率极限,来定义辐照度和辐射出射度:

image-20220703133655140

可以积分一个区域的辐照度来计算功率:

image-20220703133748372

以点光源为例,外球体上一点的辐照度小于内球体上一点的辐照度,如果点光源在所有方向上照射相同数量的照明,那么对于此配置中具有半径$r$的球体:

image-20220703134022262

这解释了一个点从光接收到的能量会随着光的平方距离而下降

当光线照射到物体表面时,如果光线与表面成一定角度,则接收到光的表面积更大,相应地每单位的光通量(即辐照度)会更小。如果$A$很小,则接收通量的区域$A_2$大约为$A/cos\theta$,对于$A_2$内的点,其辐照度为:

image-20220703134438343

image-20220703134516094

立体角和强度(Solid Angle and Intensity)

立体角单位:球面度(steradians, $sr$)

立体角是平面中的2D角度到球体角度的延伸。平面角指的是某个物体相对于某个位置所对的总角度,考虑点$p$周围的单位圆,如果将阴影对象投影到该圆上,圆$s$的某个长度将被其投影覆盖,$s$的弧长等于物体对向的弧度

image-20220703135150876

从$p$点看到的物体的平面角等于它从$p$看到的对角,等效于单位球面上弧$s$的长度。即$1 radians$对应弧长$1 r$

立体角将2D单位圆扩展为3D单位球体,总面积$s$是物体所对的立体角。立体角以球面度$sr$测量,整个球面对着$4\pi sr$的立体角,半球对应$2\pi sr$,$1 steradians$对应弧面积$1r^2$

image-20220703135454437

通过将$c$投影到单位球体上,并测量其投影面积来计算物体$c$在三个维度上所对的立体角$s$

强度单位:瓦特/球面度($W/sr$)

考虑发射光子的无穷小光源,如果我们将该光源置于单位球体的中心,我们就可以计算出发射功率的角密度,这就是强度(Intensity),用字母$I$表示,在整个方向范围内,我们有:

image-20220703141013497

一般来说,我们更关心取方向微分椎体(differential cone)的极限:

image-20220703141131215

其中,$w$表示以$p$为中心的单位球面上的点指向$p$的归一化向量

可以通过积分一系列立体角的强度来得到通量:给定强度作为方向的函数$I(w)$,我们可以在有限的一组方向 $\Omega$ 上积分以得到通量

image-20220703141527384

强度描述了光的方向分布,它只对光源有意义

辐射度(Radiance)

单位:瓦特/球面度·平方米( $W/m^2sr$ )

辐照度和辐射出射度为我们提供了点$p$处每个微分区域的微分功率,但他们不区分功率的方向分布。辐射度执行最后一步,并测量相对于立体角的辐照度或辐射出射度,它定义为

image-20220703142028432

使用$E_w$表示垂直于$w$方向的表面的辐照度,换句话说,辐射度不是根据入射在$p$表面的辐照度来测量的。测量区域的这种变化有助于消除辐射定义中的$cos \theta$项

辐射度是每单位面积、每单位立体角的通量密度,他被定义为

image-20220703142445640

其中$dA^{\perp}$是$dA$在垂直于$w$的假设表面上的投影面积,因此,当关注的入射方向锥$dw$变得非常小,表面上关注的局部区域$dA$也变得非常小

image-20220703142900072

如果给定辐射度,所有其他值都可以根据面积和方向上辐射度积分计算。辐射度的另一个很好的特性是穿过真空的光线保持恒定,因此它是使用光线追踪的自然量

入射和出射辐射函数(Incident and Exitant Radiance Functions)

当光线与场景中的表面相互作用时,辐射函数$L$通常跨表面边界不连续,在最极端的完全不透明表面(如镜子)下,略高于表面和略低于表面的辐射函数可能完全无关,此时的辐射度函数定义为方程(5.3):

image-20220703144752653

但是,我们更愿意使用到达该点的辐射(例如,由于光源的照明)和离开该点的辐射(例如,由于表面反射)来进行区分

使用$L_i(p, w)$表示入射辐射度,这里的$w$指向远离表面的方向,也有些书上方向相反。注意,$L_i(p, -w)$表示到达表面另一侧的辐射

使用$L_o(p, w)$表示出射辐射度,$w$指向远离表面的方向

image-20220703144837046

这些更直观的入射和出射辐射函数与方程(5.3)的单边限制之间存在简单的关系:

image-20220703145902417

注意,这里的$L^+(p, w)$表示从光源射向$p$点外表面的光线的辐射度,尽管$w$依然是远离表面的($w \cdot \boldsymbol{n_p} > 0$),所以需要取反来保持方向一致。$L^-(p, w)$同理

对于空间中不存在表面的那些点,$L$是连续的,因此$L^+ = L^-$,即

image-20220703150027546

此时,$L_i$和$L_0$仅在方向上反转

亮度和光度学(Luminance and Photometry)

单位:坎德拉/平方米($cd/m^2$)

所有辐射测量都有相应的光度测量。光度学(Photometry)是根据人类视觉系统感知可见电磁辐射的研究,可以通过对光谱响应曲线$V(\lambda)$进行积分,将光谱辐射量转化为光度量,其中,$V(\lambda)$ 描述人眼对各种波长的灵敏度,例如,特定能量的光谱功率分布(SPD, Spectral Power Distribution)在绿色波长下比在蓝色波长下更亮

使用$Y$表示亮度,计算公式为

image-20220703152353711

选择CIE $Y(\lambda)$三色曲线和$V(\lambda)$成正比,使用颜色的$XYZ$表示(第5.2.1节)为

image-20220703152653085

辐射度量和光度测量的单位对比:

image-20220703152737061

辐射积分(Radiometric Integrals)

表面法线为$n$,点$p$处的辐照度是一组方向$\Omega$上的辐射度的积分

image-20220703153213813

注意,这里的$cos\theta$项是由于辐射度定义里的$dA^{\perp }$产生的,$\theta$为$w$和$n$之间的夹角,显然有,$\theta$值越大,光线和表面越接近平行,此时单位面积上分得的通量更小,即光照度更小,如果写成$\frac{1}{|cos\theta|}$,则计算成了照射到的面积$A$上的通量

辐照度通常计算在半球$H^2(n)$上

image-20220703155345346

点p处的辐照度,由辐照度的积分乘以该点上方整个上半球入射方向余弦给出

投影立体角上的积分

投影立体角,是通过将物体投影到单位球面上得到单位球弧面,然后将所得形状向下投影到垂直于表面法线的单位圆盘上来得到

image-20220703155818477

这样,对于余弦加权立体角方向上的半球积分被转化为投影立体角上的积分

image-20220703155923039

半球上的积分变为

image-20220703160330231

也可以通过在物体表面积$A$上的积分来计算从某个物体发射到发现周围半球的总通量

image-20220703160514874

球坐标上的积分

方向向量和球面角之间的转化

image-20220703160815860

image-20220703160830417

微分面积$dw$和球面角之间的关系

image-20220703160919500

image-20220703160942798

解释:将微分面积看做长方形,其水平方向上的边长根据弧长公式$s = \theta_0 r$给出,这里$\theta_0 = d\phi, r = 1 * sin\theta = sin\theta$,垂直方向上的边长同样根据弧长公式计算,这里$\theta_0 = d\theta, r = 1 $

方程(5.4)和$\Omega = H^2(n)$可以等价写为

image-20220703161641814

注意$\theta$的增长方向是$+Z$到$-Z$,如果所有方向的辐射度都相同,则方程简化为
$$
E = \int_0^{2\pi} \int_0^{\pi/2}L_i cos\theta sin\theta, d\theta d\phi = L_i \int_0^{2\pi} \int_0^{\pi/2} \frac{1}{4} sin2\theta, d2\theta d\phi = \frac{L_i}{4} \int_0^{2\pi}-cos2\theta \vert_0^{\pi/2}, d\phi \
= \frac{L_i}{2} \int_0^{2\pi} , d\phi = \pi L_i
$$
方向向量到球面角的转换可以通过下式

image-20220703163240560

面积积分

将微分面积$dA$和微分立体角$dw$之间的关系表示为

image-20220703164240627

image-20220703164254749

解释:$r$是$p$到$dA$的距离,$\theta$是$dA$表面法线和到点$p$的向量之间的角度,$cos\theta$项将$dA$投影到其所在的球面上,令此时的面积$dA^{\perp} = dA cos\theta $,则$dA^{\perp}$和$dw$所对的立体角相同,根据立体角公式$A_0 = w_0 r^2$有
$$
\frac{dw}{1^2} = \frac{dA^{\perp}}{r^2} \iff dw = \frac{dA cos\theta}{r^2}
$$
此时可以将四边形光源的辐照度积分写为

image-20220703165218050

$L$是四边形表面发射的辐射度,$\theta_i$是$p$处的表面法线与$p$到灯光上$p^{‘}$点的方向之间的角度,$\theta_0$是灯光上$p^{‘}$点的表面法线和从$p^{‘}$ 到$p$方向之间的角度

表面反射

当光线入射到表面时,表面会散射光,并将其中一部分反射回环境,为了模拟这种反射,需要描述两种效应:反射光的光谱分布及其方向分布。描述这些光反射机制主要有两个抽象:

  • BRDF:双向反射分布函数,描述了忽略次表面光传输影响的点处的表面反射,材质对其传输机制没有显著影响,实现高效
  • BSSRDF:双向散射表面反射率分布函数,描述了半透明材质的光反射更泛化的配置

The BRDF(Bidirectional Reflectance Distribution Function)

双向反射分布函数给出了描述表面反射的形式,我们想要知道沿着$w_i$方向的入射辐射度$L_i(p, w_i)$有多少辐射度$L_o(p, w_0)$离开表面,其模型如下图

image-20220703171943374

该模型描述了沿$w_i$方向的入射光从表面沿$w_0$方向散射,如果$w_i$被认为是方向的微分锥体,则$p$处的微分辐照度为

image-20220703172341460

根据几何光学的线性假设,反射的微分辐射度和辐照度成正比

image-20220703172504235

比例常数定义特定方向$w_i$和$w_0$的表面BRDF

image-20220703172630681

基于物理的BRDF有两个重要的约束

  • 交换性:对于所有的方向对$w_i, w_0$,有$f_r(p, w_i, w_0) = f_r(p, w_0, w_i)$

  • 能量守恒:反射光的总能量小于或等于入射光的能量。对于所有方向的$w_0$有

    image-20220703173137690

表面的双向投射分布函数(BTDF, Bidirectional Transmittance Distribution Function)描述了透射光的分布,可以用类似于BRDF的方式来定义,BTDF表示为$f_t(p, w_0, w_i)$,其中$w_0$和$w_i$在$p$周围的相对半球位置。需要注意的是,BTDF不遵守交换性

为了方便起见,将BRDF和BTDF一起考虑为$f(p, w_0, w_i)$,根据定义有

image-20220703173508264

这里出射辐射度的微分是相对于入射立体角的微分。$cos\theta_i$的绝对值主要是遵循一致性约定,如“假设表面法线指向表面之外”,我们可以在$p$点周围的入射方向球面上积分这个方程,以根据入射亮度计算$w_0$方向的出射辐射度

image-20220703173819880

这是渲染中的基本方程,它描述了如何根据表面的散射特性,将光线在某个点的入射分布转换为出射分布。当球体$S^2$是积分域时,它通常被称为散射方程,或者知识在上半球$H^2(n)$积分

The BSSRDF(The Bidirectional Scattering Surface Reflectance Distribution Function)

双向散射表面反射率分布函数,是描述具有大量次表面光传输的材质散射的方程,它是如下的分布函数

image-20220703174353181

该函数描述了$w_0$方向上$p_0$点的出射微分辐射度,与$w_i$方向上$p_i$点的入射微分通量之比

BSSRDF散射方程的一般化需要对表面积和入射方向进行积分

image-20220703184721537

随着点$p_i$和$p_0$之间的距离增加,$S$的值通常会减少,这一事实对次表面散射算法实现有很大帮助


PBRT-辐射度量学
http://example.com/2022/07/13/PBRT-辐射度量学/
作者
Chen Shuwen
发布于
2022年7月13日
许可协议