|
@@ -2485,6 +2485,98 @@ $H^2$ 单位半球
|
|
|
|
|
|
|
|
> 使用了上面所说辐射度量学内容
|
|
> 使用了上面所说辐射度量学内容
|
|
|
|
|
|
|
|
|
|
+**双向反射分布函数**
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+$$
|
|
|
|
|
+d E\left(\omega_{i}\right)=
|
|
|
|
|
+L\left(\omega_{i}\right) \cos \theta_{i} d \omega_{i}
|
|
|
|
|
+$$
|
|
|
|
|
+
|
|
|
|
|
+使用数学公式描述光线和反射光线的能量关系(镜面反射和漫反射各个方向上能量不同)
|
|
|
|
|
+
|
|
|
|
|
+也可以理解为,单位面积 $dA$ 从入射光线吸收了多少能量后,向各个方向发射了的多少能量
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+$$
|
|
|
|
|
+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]
|
|
|
|
|
+$$
|
|
|
|
|
+
|
|
|
|
|
+漫反射各个方向会均匀分配发射的能量,镜面反射只有反射角会发出能量
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+相机方向就是指定的出射方向,单位面积 $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)$ 表示物体的自发光,一些物体可能可以自发光所以需要带上
|
|
|
|
|
+
|
|
|
|
|
+> 使用半球 是因为物体下方来的光线默认是无作用的,背面的光线不会影响正面的计算
|
|
|
|
|
+
|
|
|
|
|
+- 一个点光源
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+- 多个点光源
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+- 多个点光源 + 面光源
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+> 面光源看作一堆点光源的几何,也就是将面光源任意点上的贡献积分起来
|
|
|
|
|
+
|
|
|
|
|
+- 多个点光源 + 面光源 + 普通物体反射光
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+> 直接将物体反射光的面看作面光源即可,无需其他操作
|
|
|
|
|
+
|
|
|
|
|
+然后就是简化操作 方便计算
|
|
|
|
|
+
|
|
|
|
|
+$$
|
|
|
|
|
+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 就是光源本身发出的能量
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+> 泰勒展开
|
|
|
|
|
+
|
|
|
|
|
+- $E$ 自发光光源
|
|
|
|
|
+- $KE$ 光源辐射的能量经过一次反射 **直接光照**
|
|
|
|
|
+- $K^2E$ 光源辐射的能量经过俩次反射 **间接光照**
|
|
|
|
|
+- ...... **间接光照**
|
|
|
|
|
+
|
|
|
|
|
+**全局光照** 就是 所有不同光线弹射次数全部加起来,也就是 所有**直接光照**和**间接光照**的集合
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
# 动画模拟、仿真
|
|
# 动画模拟、仿真
|