15.5 真实感图形——辐射度方法

♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥

目录

5.辐射度方法

5.1 辐射度系统方程

5.2 辐射度算法流程

♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥

5.辐射度方法

光是一种辐射能,在一个封闭环境中,场景中的光能经过表面之间的反射和投射,最终达到平衡状态。

(1)辐射度

单位时间内从物体单位表面向外辐射的光能。

其能量有两部分,一部分是物体作为光源自身向外发出的能量,另一部分是物体表面接收来自周围场景表面传递给它的能量后,再次反射出去的部分。

(2)辐射度方法

将场景细分到很细很细的面片(如一个像素大的三角形),然后分别计算它们接收和发出的光能,然后逐次递归,直到每个面片的光能数据不再变化(或达到一定的阈值)。

5.1 辐射度系统方程

(1)为求解场景中物体表面的辐射度,将场景中每一物体表面分解为互不重叠的小面片。

A_{i}(i=1,2,3,...,n)

假设每一小面片的辐射度和漫反射率均是常数,因此每一面片采用一个颜色进行绘制。

一些术语:

辐射光强:我们认为,所有的面片都会辐射出光强,大多数面片辐射出的光强是0.

反射率:光线击中表面时,一些光线转换为热能,一些光线被反射出去。反射出去的光强比例被称为反射率。

入射和出射光强:有多少光强抵达一个面片,有多少光强反射离开面片,分别称为入射光强和出射光强。

(2)对于每一个小面片A_{i},成立:

其中,

B_{i}表示辐射度,

E_{i}是自身拥有的辐射度,

\rho _{i}表示漫反射率,

H_{i}表示周围场景面片入射到面片单位面积上的光能,是周围面片辐射度的函数。

(3)设面片A_{j}为一周围场景面片,则由辐射度的定义,A_{j}向外辐射的总的光能为B_{j}A_{j},其中一部分到达了A_{i}

设到达A_{i}的光能占A_{j}向外辐射的总光能比例为F_{ji},则从周围环境面片入射到A_{i}的总光能为:

(4)入射到面片A_{i}单位面积上的光能H_{i}为:

(5)由热能方程,辐射度方程可以转换为:

(6)综上,辐射度的系统方程为:

该方程可以用矩阵的形式来表示:

举例:

5.2 辐射度算法流程

辐射度算法的流程为:

(1)表面分割:将场景表面分割成小面片

均匀网格化:

自适应网格化:

(2)形状因子计算:计算小面片间的形状因子

计算和确定场景面片之间的形状因子。

微面元-面片形状因子计算公式:

遮挡因子:

面片-面片形状因子计算公式:

(3)方程求解:求解辐射度系统方程

即求解矩阵:

该矩阵的求解可以使用高斯消法、或者Gauss-Seidel迭代法、SouthWell迭代方法等等。

a.Gauss-Seidel迭代法——Gathering

对于每一面片,收集场景中其他面片对它辐射的光能,更新该面片的辐射度。

b.SouthWell迭代法——Shooting

选取辐射源片面(具有最大待辐射光能),将其辐射光能发送到其他面片,更新各面片的辐射度。

之后选取新的辐射面片进行上述操作。

(4)绘制:依据计算出的辐射度,转换为表面颜色

♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥

广告时间:

本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。

希望大家可以共同进步,嘻嘻嘻!

求关注,爱你呦!

KeepYourAims

发布了125 篇原创文章 · 获赞 126 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/Valieli/article/details/103490802