IBL
Image Based Lighting多在工程中应用于环境光,分别针对于BRDF中的漫反射与镜面反射
漫反射
球谐函数
- 球谐函数是一组全球空间的基函数
- 对于基函数的投影系数:cl=∫Ωf(ω)⋅Yl(ω)dω
- 可进行旋转变换(基于球谐函数的线性组合拟合以及球谐函数的旋转不变性):
R=RxxRyxRzxRxyRyyRzyRxzRyzRzz(作用于坐标轴)
旋转变换时,我们应通过改变系数的方式去实现相应旋转,方便通过N采样时,我们能即时的将其(x,y,z)带入基函数,其中二阶基函数为B0=C0⋅y,B1=C1⋅z,B0=C2⋅x,即:
C0′C1′C2′=RxyRxzRxxRyyRyzRyxRzyRzzRzx⋅C0C1C2
同理,对于三阶的基函数,同样是通过提取多项式中的原基函数的系数建立矩阵(5x5)
球面卷积
- 卷积个人理解:对原函数进行相对位置的积分处理得到一个新函数
- IrradianceIBLdiffuse公式:
E(n)=∫Li(w)⋅max(0,n⋅ω)dω
- 对于球谐基函数或傅里叶基函数此类频域的基函数来说,卷积操作等于基函数系数相乘(基于其基底正交性推导),即:
E(n)=f0,0f−1,0f−1,0…⋅(f(n)0,0f(n)−1,0f(n)−1,0…)
推导过程:
Li(w)=i=0∑K−1ciYi(w)
max(0,n⋅ω)=i=0∑K−1cniYi(w)
E(n)=∫Li(w)⋅max(0,n⋅ω)dω=∫i=0∑K−1ciYi(w)i=0∑K−1cniYi(w)dω=i=0∑K−1ci⋅i=0∑K−1cni
其中Cni(基于勒让德多项式):
ci0=π⋅Yi0(n),ci1=32π⋅Yi1(n),ci2=41π⋅Yi2(n)
真实立体角(Cubemap->球面空间)
- 公式:
dw=u2+v2+1du⋅dv⋅cosα,cosα=u2+v2+11
镜面反射
蒙特卡洛重要性采样
- IrradianceIBLspecular公式:
Lo=∫Li(w)⋅4(N⋅V)DFGdω=N1k=1∑Nρ(w)Li(w)∗4(N⋅V)DFG
其中
ρ(wl)=4(H⋅V)D(H)⋅(N⋅H)
推导:
ρ(wl)∗dwl=ρ(h)∗dwh⟹p(wl)=dwlρ(h)∗dwh=4(H⋅V)ρ(h)(反射立体角的变换)
- 法线分布函数D(H)并非法线的概率密度函数,理由:D(H)为微观面积与宏观面积的立体角之比
- 对于除以概率密度的理解:
- 概率密度控制采样密度,积分本质为面积的计算,采样密度与采样范围成反比,累加(采样范围x采样值)=面积
- g(x)乘以概率密度再积分意义为该积分域的g(x)的平均值,所以累加即可得到
∫f(x)dx=∫p(x)f(x)∗p(x)dx=∫g(x)∗p(x)dx=E[g(x)]
- 分离为:
- 预滤波环境贴图:
Sum1=N1k=1∑NLi(w)=∫Li(w)∗ρ(w)dw
- BRDF项:
Sum2=N1k=1∑N(F0⋅(1−(1−V⋅H)5)⋅(N⋅V)(N⋅H)G⋅(H⋅V)+(1−V⋅H)5⋅(N⋅V)(N⋅H)G⋅(H⋅V))
=F0⋅N1(1−(1−V⋅H)5)⋅(N⋅V)(N⋅H)G⋅(H⋅V)+N1(1−V⋅H)5⋅(N⋅V)(N⋅H)G⋅(H⋅V)
其中第一项为R(Scale),第二项为G(Offset).
所有基于BRDF cooktorrance的双向反射分布函数都可以进行类似公式