目录
Image-Based Lighting (IBL)
- IBL不考虑visibility项,因此其求解的渲染方程如下:
L o ( p , ω 0 ) = ∫ Ω + L i ( p , ω i ) f r ( p , ω i , ω o ) c o s θ i d ω i (1) \tag{1}L_o(p, \omega_0) = \int_{\varOmega^+}L_i(p, \omega_i)f_r(p, \omega_i, \omega_o)cos\theta_i d\omega_i Lo(p,ω0)=∫Ω+Li(p,ωi)fr(p,ωi,ωo)cosθidωi(1) - 使用蒙特卡罗方法求解渲染方程需要大量的样本(采样),因此计算会非常耗时。(在编写的shader中涉及到采样一般不能应用到实时渲染中,但由于时间空间滤波方法、样本复用技术的出现,可以使采样应用到实时渲染中)
- 求解IBL的渲染方程时,使用《Shadow Mapping》章节公式(1)进行近似, 将光照从积分中提出(原理略)
L o ( p , ω 0 ) ≈ ∫ Ω f r L i ( p , ω i ) d ω i ∫ Ω f r d ω i ⋅ ∫ Ω + f r ( p , ω i , ω o ) c o s θ i d ω i (2) \tag{2}L_o(p, \omega_0) \approx \cfrac{\int_{\varOmega_{f_r}} L_i(p, \omega_i)d\omega_i}{\int_{\varOmega_{f_r}}d\omega_i} \cdot \int_{\varOmega^+} f_r(p, \omega_i, \omega_o)cos\theta_i d\omega_i Lo(p,ω0)≈∫Ωfrdωi∫ΩfrLi(p,ωi)dωi⋅∫Ω+fr(p,ωi,ωo)cosθidωi(2)- ∫ Ω f r L i ( p , ω i ) d ω i ∫ Ω f r d ω i (3) \tag{3} \cfrac{\int_{\varOmega_{f_r}} L_i(p, \omega_i)d\omega_i}{\int_{\varOmega_{f_r}}d\omega_i} ∫Ωfrdωi∫ΩfrLi(p,ωi)dωi(3)
- 公式(3)可以表示为:在整个球上,BRDF Lobe所覆盖区域中的光线积分起来再归一化。其实就是将IBL表示的图像进行模糊(后面称天空盒)。(即滤波环境光, 滤波核大小取决于BRDF Lobe的大小)
- lobe:理解为分布(反射波瓣)
- 实际应用中,先将使用HDR图获得的Cube Map进行模糊处理(即mipmap)(这一步可以预计算完成)。使用时,根据BRDF Lobe的大小,在mipmap查询(或插值计算)
- 只需要使用入射光线的镜面反射方向在Cube Map的mipmap中取一次值即可(得到原本光线周围一片光线的值)
- 通过上述步骤的近似,公式(3)就没有采样了
- ∫ Ω + f r ( p , ω i , ω o ) c o s θ i d ω i (4) \tag{4} \int_{\varOmega^+} f_r(p, \omega_i, \omega_o)cos\theta_i d\omega_i ∫Ω+fr(p,ωi,ωo)cosθidωi(4)
- 公式(4)的计算思路依然是尽可能的将计算维度降下来。(即,将积分中的变量或常量提出(降维))
- 公式(4)的预计算
- BRDF公式如下:
f ( i , o ) = F ( i , h ) G ( i , o , h ) D ( h ) 4 ( n , i ) ( n , o ) (5) \tag5 f(i,o) = \frac{F(i,h)G(i,o,h)D(h)}{4(n,i)(n,o)} f(i,o)=4(n,i)(n,o)F(i,h)G(i,o,h)D(h)(5) - 其中菲尼尔项使用Schlick近似
R ( θ ) = R 0 + ( 1 − R 0 ) ( 1 − c o s θ ) 5 (6) \tag6 R(\theta) = R_0+(1-R_0)(1-cos\theta)^5 R(θ)=R0+(1−R0)(1−cosθ)5(6) - 法线分布函数使用Beckmann分布
D ( m ) = χ + c o s θ π α b 2 ( c o s θ ) 4 exp ( ( c o s θ ) 2 − 1 α b 2 ( c o s θ ) 2 ) (7) \tag7 D(m) = \frac{\chi^+cos\theta}{\pi\alpha_b^2(cos\theta)^4}\exp(\frac{(cos\theta)^2-1}{\alpha_b^2(cos\theta)^2}) D(m)=παb2(cosθ)4χ+cosθexp(αb2(cosθ)2(cosθ)2−1)(7) - 从BRDF公式中可以看出,如果想要求出当前着色点的BRDF,未知数有夹角 θ \theta θ、基础反射率 R 0 R_0 R0、用户输入的Roughness α b \alpha_b αb。这是一个三维的函数。
- 降维过程如下:
∫ Ω + f r ( p , ω i , ω o ) c o s θ i d ω i \int_{\varOmega^+} f_r(p, \omega_i, \omega_o)cos\theta_i d\omega_i ∫Ω+fr(p,ωi,ωo)cosθidωi
将菲尼尔项显式写出
∫ Ω + f r R ( θ ) ( R 0 + ( 1 − R 0 ) ( 1 − c o s θ ) 5 ) c o s θ i d ω i \int_{\varOmega^+} \frac{f_r}{R(\theta)}(R_0+(1-R_0)(1-cos\theta)^5) cos\theta_i d\omega_i ∫Ω+R(θ)fr(R0+(1−R0)(1−cosθ)5)cosθidωi
f r R ( θ ) \frac{f_r}{R(\theta)}
- BRDF公式如下:

本文详细介绍了Image-Based Lighting (IBL) 的渲染方程及其近似方法,包括预计算辐射传递(PRT)、球谐函数(SH)在环境光中的应用。针对BRDF的diffuse和glossy两种情况,阐述了如何利用SH进行光照计算,降低了实时渲染的计算复杂性。同时,讨论了阴影处理、频率与滤波、基函数的概念,以及预计算技术在动态光照环境中的挑战与解决方案。
-- Environment Lighting&spm=1001.2101.3001.5002&articleId=120793839&d=1&t=3&u=3abc7ef1c7fe4d85b4aed82680ddd4a2)
2090

被折叠的 条评论
为什么被折叠?



