- 图片来自 Snaps Art HD | School
- 读本文前请确认掌握了足够的基础
- 至少达到了入门水平,或者像我一样踏进来半只脚,我是菜逼顺带一提 =_=
- 上 篇(本文)主要讲解基于与计算辐射度传输技术的全局照明效果,也就是SH
- 这篇文章很蹩脚,但比上篇好一点,给美术写教程让我感觉我是傻逼
- 中、下篇有时间会写,写什么再说,但早晚会出
- 感谢熊大lao
基于物理的渲染方程
- 祖传的渲染方程:
L 0 = L e + ∫ Ω f r ⋅ L i ⋅ ( w i ⋅ n ) ⋅ d w i L_0 = L_e + \int_\Omega f_r \cdot L_i \cdot (w_i \cdot n) \cdot dw_i L0=Le+∫Ωfr⋅Li⋅(wi⋅n)⋅dwi
L 0 L_0 L0 、 L e L_e Le 、 f r f_r fr、 L i L_i Li 分别是p点的出射光亮度、发出的光亮度、入射方向到出射方向的反射比例、入射光亮度;
( w i ⋅ n ) (w_i \cdot n) (wi⋅n) 是入射角带了的入射光衰减;
∫ Ω . . . d w i \int_\Omega ...dw_i ∫Ω...dwi 是入射方向半球的积分; - 现在,以辐射度的角度重新看一下这个方程
L ( x , w o ) = L e ( x , w o ) + ∫ s f r ( x , w i → w o ) ⋅ L ( x ′ , w i ) ⋅ G ( x , x ′ ) ⋅ V ( x , x ′ ) ⋅ d w i L(x,w_o) = L_e(x,w_o) + \int_s f_r(x,w_i \rarr w_o) \cdot L(x \rq,w_i) \cdot G(x,x \rq) \cdot V(x,x \rq) \cdot dw_i L(x,wo)=Le(x,wo)+∫sfr(x,wi→wo)⋅L(x′,wi)⋅G(x,x′)⋅V(x,x′)⋅dwi
L ( x , w o ) L(x,w_o) L(x,wo)表示在位置 x x x上,方向为 w o w_o wo的光线的辐射度;
L e ( x , w o ) L_e(x,w_o) Le(x,wo)表示位置 x x x上,自发射防线为 w o w_o wo的光线的辐射度;
f r ( x , w r → w o ) f_r(x,w_r \rarr w_o) fr(x,wr→wo)表示位置 x x x上, w i w_i wi(入射方向)到 w o w_o wo(出射方向)的反射比例;
L ( x ′ , w i ) L(x \rq,w_i) L(x′,wi)表示其他物体位置 x ′ x \rq x′处,沿 w i w_i wi方向照射过来的光线辐射度;
G ( x , x ′ ) G(x,x \rq) G(x,x′)表示位置 x x x与 x ′ x \rq x′之间的几何关系;
V ( x , x ′ ) V(x,x \rq) V(x,x′)表示位置 x x x与 x ′ x\rq x′之间是否存在遮挡。
那么,只要能解出入射辐射度值的立体角微分在半球球面上的积分的结果,就可以得到出射辐射度值。
但是,实时算球面每个点的出射辐射度现在的硬件水平几乎不可能。
球谐函数
-
因为光具有波粒二象性的特点,可以将光视为一种电磁波。
对于各向同性的在均匀介质中传递的电磁波,可以麦克斯韦方程组中推导出波速、电场强度、磁场强度三者建立联系的波动方程。
{ v = 1 u ε ∇ 2 E − 1 v 2 ∂ 2 E ∂ t 2 = 0 ∇ 2 H − 1 v 2 ∂ 2 H ∂ t 2 = 0 \begin{cases} v = \cfrac{1}{\sqrt {u \varepsilon}} \\ \nabla ^2 E - \cfrac{1}{v^2} \cfrac{\partial ^2 E}{\partial t^2} = 0 \\ \nabla ^2 H - \cfrac{1}{v^2} \cfrac{\partial ^2 H}{\partial t^2} = 0 \\ \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧v=uε1∇2E−v21∂t2∂2E=0∇2H−v21∂t2∂2H=0
因为是近似,再加上磁场的作用比电场弱的多,可以进一步砍成:
{ v = 1 u ε ∇ 2 E − 1 v 2 ∂ 2 E ∂ t 2 = 0 \begin{cases} v = \cfrac{1}{\sqrt {u \varepsilon}} \\ \nabla ^2 E - \cfrac{1}{v^2} \cfrac{\partial ^2 E}{\partial t^2} = 0 \\ \end{cases} ⎩⎪⎪⎨⎪⎪⎧v=