- 基于物理理论的光照模型:偏重于使用物理的度量和统计方法,效果非常真实,但是计算复杂,实现起来 也较为困难。例:PBR
- 经验模型:是对光照的一种模拟,通过实践总结出简化的方法,简化了真实的光照计算,并且能达到很不错的效果。例:Lambert,Billing-Phong。
- 这里我介绍的是PBR,基于物理理论的光照模型
一个点的出射光 L o ( ω o , x ) L_o(\omega_o, x) Lo(ωo,x) 是由入射光 L i ( ω i , x ) L_i(\omega_i, x) Li(ωi,x)通过表面的反射特性 f ( ω o , ω i , x ) f(\omega_o, \omega_i, x) f(ωo,ωi,x) 和表面法线 n n n的方向所影响的。
L o ( ω o , x ) = ∫ Ω f ( ω o , ω i , x ) L i ( ω i , x ) ( ω i ⋅ n ) d ω i L_o(\omega_o, x) = \int_{\Omega} f(\omega_o, \omega_i, x) L_i(\omega_i, x) (\omega_i \cdot n) d\omega_i Lo(ωo,x)=∫Ωf(ωo,ωi,x)Li(ωi,x)(ωi⋅n)dωi
L
0
L_0
L0是出射光,
ω
0
ω_0
ω0 是出射方向,
x
x
x是表面上的点,
L
i
L_i
Li是入射光,
w
i
w_i
wi是入射方向,
f
f
f是双向反射分布函数 (BRDF),
n
n
n 是法线,Ω 表示所有可能的入射方向。
d
ω
i
dω_i
dωi 是微小的立体角元素,
∫
Ω
\int_{\Omega}
∫Ω表示对入射方向的积分。
入射光线与法线的点积
(
ω
i
.
n
)
(ω_i.n)
(ωi.n)用于确定光线与表面交互的角度,这会影响光的散射和吸收,从而影响物体的可见亮度和颜色。
双向反射分布函数(BRDF)描述了光在不同角度照射到物体表面时的反射特性。
- BRDF属性:每个高斯点被分配了三个BRDF属性:基色 b(取值范围在[0, 1]),粗糙度 r(取值范围在[0, 1]),以及金属度 m(取值范围在[0, 1])。
- Disney BRDF模型:采用了简化的Disney BRDF模型来模拟材质的光学特性。
- BRDF函数的分解:BRDF函数 f 被分解为漫反射项 fd 和镜面反射项 fs。
- 漫反射项 fd 与基色 b 和金属度 m 相关,而镜面反射项 fs 则包括法线分布函数 D,菲涅耳项 F,以及几何项 G。
局限性:
- 复杂性:积分涵盖了所有可能的入射方向,使得计算在实践中非常复杂,通常需要近似方法。
- 全局光照未考虑:方程仅考虑了直接光照,没有包括间接光照,如反射和折射所产生的效果。
- 物理精度:尽管基于物理的渲染 (PBR) 方法力求真实,但实际的材料和光照条件可能导致与现实世界有差异的结果。
- 计算资源:对于复杂场景,这一计算可能非常耗费资源,尤其是在实时渲染领域。
- 简化假设:为了可计算性,方程常常基于简化的假设,例如光源是均匀的、表面属性是均匀分布的等。
更加详细的内容在https://en.wikipedia.org/wiki/Rendering_equation