Ver código fonte

介绍另一种光线追踪

usuiforhe 2 anos atrás
pai
commit
ebe22dcc55

BIN
图形学/Image/141.png


BIN
图形学/Image/142.png


BIN
图形学/Image/143.png


BIN
图形学/Image/144.png


BIN
图形学/Image/145.png


BIN
图形学/Image/146.png


BIN
图形学/Image/147.png


BIN
图形学/Image/148.png


+ 92 - 0
图形学/图形学.md

@@ -2485,6 +2485,98 @@ $H^2$ 单位半球
 
 > 使用了上面所说辐射度量学内容
 
+**双向反射分布函数**
+
+![](./Image/141.png)
+
+$$
+d E\left(\omega_{i}\right)=
+L\left(\omega_{i}\right) \cos \theta_{i} d \omega_{i}
+$$
+
+使用数学公式描述光线和反射光线的能量关系(镜面反射和漫反射各个方向上能量不同)
+
+也可以理解为,单位面积 $dA$ 从入射光线吸收了多少能量后,向各个方向发射了的多少能量
+
+![](./Image/142.png)
+
+$$
+f_{r}\left(\omega_{i} \rightarrow \omega_{r}\right)=
+\frac{\mathrm{d} L_{r}\left(\omega_{r}\right)}{\mathrm{d} E_{i}\left(\omega_{i}\right)}=
+\frac{\mathrm{d} L_{r}\left(\omega_{r}\right)}{L_{i}\left(\omega_{i}\right) \cos \theta_{i} \mathrm{~d} \omega_{i}}\left[\frac{1}{\mathrm{sr}}\right]
+$$
+
+漫反射各个方向会均匀分配发射的能量,镜面反射只有反射角会发出能量
+
+![](./Image/143.png)
+
+相机方向就是指定的出射方向,单位面积 $dA$ 会从很多方向收到光照,每个入射光线在指定的出射方向都可以通过BRDF计算,把每个方向对出射方向的计算相加,得出单位面积 $dA$ 在所有的入射光下最后反射到指定方向上的样子
+
+$$
+L_{r}\left(\mathrm{p}, \omega_{r}\right)=
+\int_{H^{2}} f_{r}\left(\mathrm{p}, \omega_{i} \rightarrow \omega_{r}\right) L_{i}\left(\mathrm{p}, \omega_{i}\right) \cos \theta_{i} \mathrm{~d} \omega_{i}
+$$
+
+> 这里 $f_{r}\left(\mathrm{p}, \omega_{i} \rightarrow \omega_{r}\right)$ 值得就是 BRDF 计算方程
+
+通过上面的数学公式,可以推理得到渲染方程
+
+$$
+L_{o}\left(p, \omega_{o}\right)=L_{e}\left(p, \omega_{o}\right)+\int_{\Omega^{+}} L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right) \mathrm{d} \omega_{i}
+$$
+
+> 这里的 $L_{e}\left(p, \omega_{o}\right)$ 表示物体的自发光,一些物体可能可以自发光所以需要带上
+
+> 使用半球 是因为物体下方来的光线默认是无作用的,背面的光线不会影响正面的计算
+
+- 一个点光源
+
+![](./Image/144.png)
+
+- 多个点光源
+
+![](./Image/145.png)
+
+- 多个点光源 + 面光源
+
+![](./Image/146.png)
+
+> 面光源看作一堆点光源的几何,也就是将面光源任意点上的贡献积分起来
+
+- 多个点光源 + 面光源 + 普通物体反射光
+
+![](./Image/147.png)
+
+> 直接将物体反射光的面看作面光源即可,无需其他操作
+
+然后就是简化操作 方便计算
+
+$$
+L_{o}\left(p, \omega_{o}\right)=
+L_{e}\left(p, \omega_{o}\right)+\int_{\Omega^{+}} L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right) \mathrm{d} \omega_{i}
+$$
+
+$$
+l(u)=e(u)+\int l(v) K(u, v) d v
+$$
+
+$$
+L = E + KL
+$$
+
+> K 就是简化的算子(反射操作符),L 表示被辐射出来的能量,E 就是光源本身发出的能量
+
+![](./Image/148.png)
+
+> 泰勒展开
+
+- $E$ 自发光光源
+- $KE$ 光源辐射的能量经过一次反射 **直接光照**
+- $K^2E$ 光源辐射的能量经过俩次反射 **间接光照**
+- ...... **间接光照**
+
+**全局光照** 就是 所有不同光线弹射次数全部加起来,也就是 所有**直接光照**和**间接光照**的集合
+
 
 
 # 动画模拟、仿真