Radiance vs Irradiance 辐射/亮度 vs 辐照度

- Irradiance 辐照度: 单位面积上接收到的辐射功率
- Radiance 辐射/亮度: 在dω立体角方向上,单位面积上接收到的辐射功率
沿着某个方向ω入射到点p上的辐射亮度为Li(p,ω),则该点在该方向ω上单位面积上接收到的辐照度为dE(p)。
dE(p,ω)=Li(p,ω)⋅cosθ⋅dω
则在所有方向上入射到点p上的辐照度为:
E(p)=∫H2Li(p,ω)⋅cosθ⋅dω
BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)
BRDF 描述了从某个方向入射到一个点上的光线的能量会怎么反射,在不同的反射方向上分布多少能量。
反射的理解:光线打到物体的某个位置上,吸收了能量,然后再发出一些能量出去。

从ωi方向入射的光线,打到了 P 点上,P 点有效单位面积上接收到的辐射功率(即辐照度 Irradiance
)为:
dE(ωi)=L(ωi)⋅cosθi⋅dωi
之后这部分被接收的能量会被 P 点吸收一部分,然后再沿着不同的方向反射出去。其中,沿着ωr方向反射出去的辐射亮度(Radiance
)为:
dLr(ωr)
BRDF 定义
Bidirectional Reflectance Distribution Function (BRDF)
表达了对于每个入射光线方向ωi,如何分配反射的比例到各个出射方向ωr上
fr(ωi→ωr)=dE(ωi)dLr(ωr)=L(ωi)⋅cosθi⋅dωidLr(ωr)
BRDF 的单位是 sr1。
通过 BRDF 可以统一漫反射和镜面反射,区别只是在不同方向上分配的比例不同。
BRDF 定义了物体不同的材质。
反射方程 Reflection Equation

针对某个着色点p,对所有入射方向上的光线进行积分,得到该点沿着某个出射方向ωr的反射亮度:
Lr(p,ωr)=∫H2fr(p,ωi→ωr)⋅Li(p,ωi)⋅cosθi⋅dωi
其中:
- Lr(p,ωr):点p沿着方向ωr的反射亮度
- fr(p,ωi→ωr):点p的 BRDF
- Li(p,ωi):点p沿着方向ωi的入射亮度
- cosθi:入射方向与法线的夹角余弦
- dωi:入射方向的立体角微分

挑战:入射光不止来自光源,还可能来自其他物体的反射光,这将会导致递归,计算量巨大
渲染方程 Rendering Equation

渲染方程是在反射方程的基础上,加入了自发光项Le(p,ωo),表示点p沿着方向ωo自发光的亮度,就可以得到渲染方程:
Lo(p,ωo)=Le(p,ωo)+∫Ωfr(p,ωi→ωo)⋅Li(p,ωi)⋅(n⋅ωi)⋅dωi
PS: 这里假设了所有的方向都是朝向点向外的方向,即使入射光是向内发射,也要把它反过来,变成向外的方向。
这个方程来自 Kajiya 在 1986 年提出的论文 “The Rendering Equation”。论文链接 论文标题很短(通常来说名字越短,事情越大)。渲染方程基本上是现代计算机图形学的基础。
渲染方程的理解
对于一个点光源

对于单个点光源时,在着色点x上沿着r方向反射光线的亮度为:
Lr(x,ωr)=Le(x,ωr)+Li(x,ωi)⋅f(x,ωi,ωr)⋅(ωi⋅n)
其中:
- Lr(x,ωr):点x沿着方向ωr的反射亮度
- Le(x,ωr):点x沿着方向ωr的自发光亮度
- Li(x,ωi):来自点光源的入射亮度
- f(x,ωi,ωr):点x的 BRDF
- ωi⋅n:入射方向与法线的夹角余弦
对于多个点光源

对于多个点光源时,在着色点x上沿着r方向反射光线的亮度是所有点光源贡献的总和:
Lr(x,ωr)=Le(x,ωr)+∑Li(x,ωi)⋅f(x,ωi,ωr)⋅(ωi⋅n)
对于面积光源

面光源可以看作是由无数个点光源组成的。
故求和变成积分:
Lr(x,ωr)=Le(x,ωr)+∫Li(x,ωi)⋅f(x,ωi,ωr)⋅(ωi⋅n)dωi
考虑其他物体反射的光线

Lr(x,ωr)=Le(x,ωr)+∫ΩLr(x′,−ωi)f(x,ωi,ωr)cosθidωi
这个方程是 Fredholm Integral Equation of second kind [extensively studied numerically] with canonical form, 第二类弗雷德霍姆积分方程
可以简化成如下形式:
I(u)=θ(u)+∫l(v)K(u,v)dv
通过算子形式可以写成:
L=E+KL
经过数学变换可以得到:

L=(I−K)−1E=E+KE+K2E+K3E+…

其中:
- E表示自发光项
- KE表示直接光照
- K2E表示间接光照
- K3E表示二次间接光照
- 以此类推…

对于光栅化的着色过程,相当于是只有直接光照。如果要考虑间接光照,使用光栅化的方式会很困难,而光线追踪可以很自然地处理间接光照。
全局光照
直接光照和间接光照的总和称为全局光照(Global Illumination, GI)。

如图为直接光照,光沿直线传播,光线无法到达被其他物体遮挡的区域,故该区域为黑色。

加入一次间接光照后,光线可以经过物体的反射到达被遮挡的区域,故该区域不再是黑色。

加入二次间接光照后,光线可以经过多次反射到达被遮挡的区域,故该区域变得更亮。

加入四次间接光照后,光线可以经过更多次反射到达被遮挡的区域,故该区域变得更亮。
PS: 在四次弹射后,中间上方的玻璃开始发亮,是因为光线至少要经过两次弹射进入玻璃,再经过两次弹射才能出玻璃被摄像机接收。

加入更多次,渲染结果将会收敛到一个稳定的结果,而不会无限变亮。实际上是 BRDF 会满足能量守恒。
概率论
TODO