GAMES101 学习15——光线追踪3(辐射度量学、渲染方程、全局光照)

lutianfei 发表于 2022/05/10 15:54:34 2022/05/10
【摘要】 一、辐射度量学上节课的回顾:Radiant flux (power) 描述了单位时间内的能量Radiant intensity 描述了光源在单位立体角,单位时间上发出的辐射能量(Radiant flux (power) )Solid Angle 描述了球面面积与半径的平方之比既然定义了点光源发出的辐射功率,接下来就继续定义物体表面是如何接收辐射功率的,它是通过 irradiance 来进行...

一、辐射度量学

上节课的回顾:

  • Radiant flux (power) 描述了单位时间内的能量
  • Radiant intensity 描述了光源在单位立体角,单位时间上发出的辐射能量(Radiant flux (power) )
  • Solid Angle 描述了球面面积与半径的平方之比

image.png

既然定义了点光源发出的辐射功率,接下来就继续定义物体表面是如何接收辐射功率的,它是通过 irradiance 来进行描述的。

1.1 irradiance

irradiance 与 Radiant intensity 不同,它描述的是接收到的功率:即单位区域面积、单位时间内接收到的辐射能量:
E ( x ) d Φ ( x ) d A E(\mathbf{x}) \equiv \frac{\mathrm{d} \Phi(\mathbf{x})}{\mathrm{d} A}

image.png

这里的面积指的是与光线所垂直的面积,即如果表面与光线存在夹角,需要对其进行投影,即表面的Irradiance和法线的余弦成正比:
image.png

相较于 Radiant intensity ,irradiance 在传播过程中是在衰减的,因为 Radiant intensity 只和角度有关。但是当光源离物体表面越远,角度是不变的,但辐射到的面积却是增大的,所以 irradiance 是逐渐衰减的。
image.png

1.2 radiance

radiance 是指单位立体角、单位投影面积所辐射出的能量。
为什么需要 radiance?

  1. 用于描述光线的各种属性
    image.png

  2. 是因为需要和 irradiance 进行联系,以描述场景中物体接收到的能量以及它向周围所辐射出去的能量。

radiance 的定义如下:per unit solidangle, per projected unit area
image.png

理解:确定一定的区域(dA),它会往特定的一个方向辐射能量(欧米伽方向)

1.2.1 比较/联系Radiance、Irradiance、Intensity

  • 总结:
    Radiance 等于 Irradiance per 立体角
    等于 Intensity per unit 面积

从上面式子可以看出,通过积分顺序可以定义出不同类型的radiance

1.2.2 Incident Radiance

当先积分dA 时,radiance 定义为 Incident Radiance (和入射有关)。表示光源通过单位立体角到达物体表面的能量。
image.png

1.2.3 Exiting Radiance

当先积分 d ω d\omega 时, radiance 定义为 Exiting Radiance(和出射有关)。表示单位投影区域离开物体表面的能量:
image.png

1.2.4 Irradiance VS Radiance

当定义了描述接收辐射能量的概念 irradiance ,和描述发出辐射能量的概念 radiance ,就可将两者联系起来(其实把 radiance 看出是发出辐射能量的概念并不贴切,它更像是描述了单位立体角、单位投影面积的辐射能量的密度),它们两者的联系如下:
image.png

从图中我们也可以看出 irradiance 实际上是描述了从所有潜在方向接收到的辐射能量。

简单来说:

  • 区别:方向性
    • Irradiance:某个范围(dA)收到的power
    • Radiance:某个范围(dA)收到的一个方向的power
  • 联系: Radiance →积分得→ Irradiance

1.3 BRDF(双向反射分布函数 Bidirectional Reflectance Distribution Function)

1.3.1 试图用 Radiance→积分得→Irradiance来解释BRDF

(a)为什么有反射?
理解1:光打到物体上,被弹走,改变方向
理解2:光打到物体表面,被吸收,再被发出
(b)用Irradiance和Radiance解释理解2
image.png

1.3.2 BRDF的定义

前面定义了每单位表面如何接收能量的,以及该表面所反射能量的计算方式。那么当表面接收到能量后,它们又是如何将能量从不同方向反射出去的呢?这里就引入了 BRDF 来进行解决。由于不同方向反射的能量是不同的,所以反射出去的能量可以看成是一个分布,BRDF 解决的正是从某个方向辐射到表面的能量,它所辐射到其他方向的能量分布问题,它描述了反射方向上的能量分布 (这一切的前提都是在物体表面会把接收的能量辐射出去的前提下)

定义物体表面单位面积在单位入射立体角 ω i \omega_{i} 、单位时间下通过光源入射所接收到的能量 d E i ( ω i ) \mathrm{d} E_{i}\left(\omega_{i}\right) ,假设它反射了能量,定义该单位表面沿某个单位出射立体角 ω r \omega_{r} 反射的能量为 d L r ( ω r ) \mathrm{d} L_{r}\left(\omega_{r}\right) ,人们就将 BRDF 定义为它们两者的比值:

其实就是一个比例:对于任何一个出射方向,算出来他的Radiance,除以dA接受到的Irradiance,就是BRDF

image.png

1.4 反射方程

上述过程只是寻找某个单位入射立体角方向的反射能量分布,那么当所有方向都对物体表面辐射了能量,就需要将这些能量一并考虑进反射方程。所以对于某个单位表面来说,它沿某个出射立体角方向所反射的能量就是光沿所有方向辐射给该表面的能量,定义如下:
image.png

这也正是反射方程的定义。

由定义也可以看出,它可以理解为:在一个表面位置p和出射方向 ω o \omega_{o} ,不同入射方向 ω i \omega_{i} 的光源都对该位置辐射了能量,使得该表面会沿出射方向反射能量 L i L_{i} 。而不同入射方向会使得表面产生不同的反射能量,这时就需要一个描述反射能量分布的函数 f r ( ω i ω r ) f_{r}\left(\omega_{i} \rightarrow \omega_{r}\right) 来描述表面在不同方向的反射能量分布(BRDF)。求出所有反射能量后,将它们求和即得到沿该出射方向的总反射能量。

具体来说:从某个方向(camera)看某个着色点(dA)就是一个积分。
这个积分考虑的就是任何一个不同的方向( d ω i dω_i ),然后考虑它的Radiance( L i ( p , ω i ) c o s θ i d ω i L_i(p, \omega_i)cosθ_idω_i ),Radiance进来之后,经过BRDF(fr(p, ωi→ωr))会变成出射的Radiance。
image.png

challenge:这个点来的Radiance,不只是有光源部分的,还有其它的(eg:其它点出射的Radiance)

1.4 渲染方程

渲染方程简单理解就是:物体自反光 + 物体反射光

上一节已经计算出了物体沿各个方向通过入射光计算得到的物体反射光,而物体自发光可以通过人为规定的材质来进行定义,所以渲染方程就可以定义如下:
image.png
注意:
1.所有方向认为朝外
2.认为下半球贡献为0(定义积分忽略下半球)
3.n·ωi=cosθi

1.4.1 渲染方程的由来

image.png

  1. 假设有多个点光源-> 加起来
    image.png

  2. 面光源怎么办? -> 积分起来(点光源集合)
    image.png

  3. 有其它物体反射过来的Radiance -> 把其它来源也当成 光源处理
    image.png

把问题理解为递归方式

a. 数学简写
image.png

b. 再简写(为了解出L)
image.png

c. 怎么解
数学变换:L可以写成如下:
image.png
这里主要运用了算子同样具有类似泰勒展开的性质

d. 最后可以理解为能量分解->全局光照
image.png

  • E:直接看到的光源(直接光照)
  • kE:辐射出的能量经过1次反射,会看到(间接光照)
  • k 2 ^2 E:经过2次反射

1.5 全局光照概念

全局光照=直接光照+间接光照

1.5.1 光栅化的局限

仅可以做:L=E+kE(只能做0次和1次)
image.png

这里也推出了Ray-Tracing的意义:可以做后续的弹射

一个直观的例子

  • 直接光照(光栅化结果)
    image.png

  • 加入间接光照(弹2次,光追)
    image.png

二、概率论基本知识

用于后续求解渲染方程

2.1 随机变量与概率密度函数 (PDF)

随机变量:以一定概率出现的变量值
概率密度函数:在一定区间进行采样,用来描述随机变量的出现概率的分布函数
image.png

概率(probabilities):
image.png

2.3 期望

离散的数学期望就是把所有随机变量与对应的概率的乘积求和,它反应的是随机变量平均出现的概率:
image.png

2.4 连续情况下描述变量和分布

pdf:概率密度函数要满足:
a. 线下面积为1
b. ∫x·概率密度=E(X)

image.png

对本身是函数的随机变量求期望,就等于直接把该函数看成是输入:
E [ Y ] = E [ f ( X ) ] = f ( x ) p ( x ) d x E[Y]=E[f(X)]=\int f(x)p(x)dx

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:cloudbbs@huaweicloud.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。