♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
目录
5.辐射度方法
5.1 辐射度系统方程
5.2 辐射度算法流程
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
5.辐射度方法
光是一种辐射能,在一个封闭环境中,场景中的光能经过表面之间的反射和投射,最终达到平衡状态。
(1)辐射度
单位时间内从物体单位表面向外辐射的光能。
其能量有两部分,一部分是物体作为光源自身向外发出的能量,另一部分是物体表面接收来自周围场景表面传递给它的能量后,再次反射出去的部分。
(2)辐射度方法
将场景细分到很细很细的面片(如一个像素大的三角形),然后分别计算它们接收和发出的光能,然后逐次递归,直到每个面片的光能数据不再变化(或达到一定的阈值)。
5.1 辐射度系统方程
(1)为求解场景中物体表面的辐射度,将场景中每一物体表面分解为互不重叠的小面片。
假设每一小面片的辐射度和漫反射率均是常数,因此每一面片采用一个颜色进行绘制。
一些术语:
辐射光强:我们认为,所有的面片都会辐射出光强,大多数面片辐射出的光强是0.
反射率:光线击中表面时,一些光线转换为热能,一些光线被反射出去。反射出去的光强比例被称为反射率。
入射和出射光强:有多少光强抵达一个面片,有多少光强反射离开面片,分别称为入射光强和出射光强。
(2)对于每一个小面片,成立:
其中,
表示辐射度,
是自身拥有的辐射度,
表示漫反射率,
表示周围场景面片入射到面片单位面积上的光能,是周围面片辐射度的函数。
(3)设面片为一周围场景面片,则由辐射度的定义,向外辐射的总的光能为,其中一部分到达了。
设到达的光能占向外辐射的总光能比例为,则从周围环境面片入射到的总光能为:
(4)入射到面片单位面积上的光能为:
(5)由热能方程,辐射度方程可以转换为:
(6)综上,辐射度的系统方程为:
该方程可以用矩阵的形式来表示:
举例:
5.2 辐射度算法流程
辐射度算法的流程为:
(1)表面分割:将场景表面分割成小面片
均匀网格化:
自适应网格化:
(2)形状因子计算:计算小面片间的形状因子
计算和确定场景面片之间的形状因子。
微面元-面片形状因子计算公式:
遮挡因子:
面片-面片形状因子计算公式:
(3)方程求解:求解辐射度系统方程
即求解矩阵:
该矩阵的求解可以使用高斯消法、或者Gauss-Seidel迭代法、SouthWell迭代方法等等。
a.Gauss-Seidel迭代法——Gathering
对于每一面片,收集场景中其他面片对它辐射的光能,更新该面片的辐射度。
b.SouthWell迭代法——Shooting
选取辐射源片面(具有最大待辐射光能),将其辐射光能发送到其他面片,更新各面片的辐射度。
之后选取新的辐射面片进行上述操作。
(4)绘制:依据计算出的辐射度,转换为表面颜色
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
广告时间:
本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。
希望大家可以共同进步,嘻嘻嘻!
求关注,爱你呦!