计算机图形学GAMES101(十四)光线追踪(辐射度量学、渲染方程与全局光照)

本节涉及内容:

  • 辐射度量学(Basic radiometry)
  • 光线的传播:反射方程以及渲染方程
  • 全局光照

为什么要学辐射度量学?
之前使用的Whittled style光线追踪很多物理量都没有精确的定义,导致生成的图像不真实。总之就是Whittled style光线追踪太拉了,需要一个更好的方法来代替。

辐射度量学(Basic radiometry)

  • 辐射度量学主要是用来描述光照的
  • 它定义了一系列的方法以及单位、属性
  • 精确测量光的空间特性
  • 以正确的物理方式进行光照计算

一些物理量的定义

在这里插入图片描述
Radiant flux还可以这样理解:假设前面有一个感光的平面,那么单位时间照射到这个平面的光线的强度
在这里插入图片描述

在这里插入图片描述

Radiant Intensity(辐射强度)

Radiant Intensity指每个单位立体角上的能量(power)

在这里插入图片描述

立体角(Solid Angles)

用弧度来表示一个角:
弧度:θ=l/r
一个圆的弧度:2π
在这里插入图片描述
立体角:
立体角就是弧度在三维空间的衍生,在三维空间中,从球心出发,射向球面,会形成一个锥体,然后用球面的面积A除以r2

一个球的立体角是4π
在这里插入图片描述

单位立体角

单位立体角就是单位面积然后除以r2
θ:表示经度方向的角度
Φ:表示纬度方向的角度
dA:单位面积

单位立体角:dω=dA/r2=sinθ dθ dΦ
在这里插入图片描述
对于一个球,所有的单位面积的积分为:
在这里插入图片描述
辐射度量中,表示三维空间中的方向通常使用ω(单位立体角)

在这里插入图片描述
知道了单位立体角,那么Radiant Intensity还可以从另一个角度进行理解。

Radiant Intensity其实就是这个光源在单位立体角上的能量,我们对所有方向进行积分,可以得到power
在这里插入图片描述
Radiant Intensity其实就是power除以4π
在这里插入图片描述

Irradiance

Irradiance是指物体表面单位面积上接收的能量

lux表示Irradiance的单位
在这里插入图片描述
这里的Irradiance必须是垂直于光线的面积,或者说投影到垂直方向上的面积
比如向下面这种情况:
在这里插入图片描述
如果是下面这种情况,物体是倾斜的那么它接收光线的面积其实是投影到垂直方向后的面积,即红色部分
在这里插入图片描述

Radiance

描述光在传播过程中的属性
在这里插入图片描述
Radiance是一个表面在单位立体角,单位投影面积的情况下接收的功率,

一个面的大小和辐射能量的方向是不固定的,我们要研究往一个方向辐射的能量就要确定这个面的大小和辐射方向。所以要结合两者,定义了某一个确定的微小的面dA,和某一个确定的方向dw

方向就用单位立体角dw来表示
面积就用单位面积dA来表示

在这里插入图片描述

Radiance和Irradiance、Intensity的联系

  • Irradiance:物体单位面积上接收的能量
  • Intensity:单位立体角上接收的能量

由上述定义可知:

  • Radiance:是Irradiance在单位立体角上的能量
  • Radiance:是Intensity在单位面积上的能量

在这里插入图片描述

Radiance:是Irradiance在单位立体角上的能量

这里理解成某一个确定微小面积上受到的所有能量(Irradiance),在一个方向ω上的分量
在这里插入图片描述

Radiance:是Intensity在单位面积上的能量

这里理解成一个确定的方向上辐射出来的所有能量(I),在一个微小面积上的分量。
在这里插入图片描述

Irradiance和Radiance比较

Irradiance:单位面积上所有方向接收的能量
Radiance:在单位面积上来自某一个方向的能量
在这里插入图片描述

双向辐射分布函数 (Bidirectional Reflectance Distribution Function 简称BRDF)

理解了前面的三个概念之后就可以重新定义反射的概念了。

反射可以理解为从某个方向进来然后反射到某个方向去的能量。可以用BRDF(反射方程)来描述这个过程。

就考虑某一个微小面积dA从某各微笑立体角dw接收到的Irradiance,会被如何分配到各个不同的立体角上面去。
在这里插入图片描述
BRDF就是 在微小面积dA,从某一个微小立体角dωi,接收到的Irradiance,会如何被分配到各个不同的立体角上去,算的是一个比例。

对于任何一个出射方向,算出其Radiance的微分,除以Irradiance的微分,这就是BRDF的定义。

在这里插入图片描述
以某一个方向为例,然后我认为某一个着色点可以接收来自四面八方不同的光照,那么对于每一个入射方向,都会对应一个“入射方向→着色点→出射方向”这样的一个BRDF,那么我们就可以把每一个方向上dω的入射光的强度Radiance乘以cosθ乘以BRDF,然后把每一个入射方向上对出射方向的贡献都加起来,就得到了从反射方向看过去这个点的样子了
在这里插入图片描述
反射方程表明了光线到达着色点后被发射的光线属性。但是哪些光线可以到达着色点呢?
到达着色点的光线可以是光源发出的光线以及其他着色点反射的光线,所以任何出射的Radiance都可以作为其他着色点入射的Radiance,所以这是一个递归的过程。

渲染方程(Rendering Equation)

一个物体的光线照射到物体后经过BRDF反射的光线是Lr(p,ωr)
在这里插入图片描述
渲染方程:假如物体是一个自发光的物体,则直接把发出的光线加上就行

渲染方程将一个物体的出射光线分成两部分构成:

  • 自己发射出去的光
  • 通过其他光源射入的,经过反射后的光

理解渲染方程

对于只有一个点光源的情况
在这里插入图片描述
对于有多个点光源的情况
在这里插入图片描述
对于有面光源的情况,可以将一个面光源理解为由一堆点光源组成。只需要对面光源所有点发出的光进行积分即可,如果光不是由光源发出的,而是别的物体反射来的,则只需要将别的物体看作光源就行。
在这里插入图片描述
我们不知道反射光的Radiance是多少,同时也不知道从其他物体反射过来的光的Radiance是多少,其他白色部分是知道的。

上面的是原式,下面的是简写
在这里插入图片描述
渲染方程最终可以写成下面的形式:
对于所有物体辐射出来的所有能量(L)可以写成 所有光源本身辐射出来的能量(E)加上 辐射出来的能量被反射之后的能量(KL)。
在这里插入图片描述

写成这个形式是为了解出L
写成这种形式后就可以使用用泰勒展开,将其展开成I+K+K2+K3……
在这里插入图片描述
在这里插入图片描述
如果光线一次都不弹射直接打到人的眼睛里,那么看到的就是光源E;如果光线弹射一次后打到人的眼睛里,看到的就是直接光照KE(包括阴影);如果弹射两次,看到的就是间接光照;如果弹射多次就是间接光照的叠加。反射本身就是一种间接光照。

从光栅化可以做什么的角度来理解该公式

光栅化可以把物体投影到屏幕上,着色的工作对于的这里的直接光照。

光栅化能够告诉我们光线传播的内容只有0次(E)和一次(KE)的弹射,后面的部分光栅化比较难完成。因为光线追踪后面的部分比较容易,这就是为什么要用光线追踪来解决光照的问题
在这里插入图片描述

全局光照

光线弹射一次,就是直接光照;如果弹射两次,看到的就是间接光照。全局光照就是将光线弹射1次到n次所有的结果全部加起来。

全局光照是直接和间接光照的集合。

直接光照和间接光照的影响

这张图片只渲染了直接光照,也就是光源可以照到的地方是有颜色的,照不到的地方是黑色
在这里插入图片描述
直接光照 加上 弹射一次间接光照的结果
在这里插入图片描述
直接光照 加上弹射一次、两次和三次间接光照的结果
在这里插入图片描述
假设做无限次的光的弹射,那么最后会收敛到某一个亮度,之后就不会再出现剧烈的变化,会基本保持在某个亮度。(能量守恒和单位时间问题)

概率论基础

x指随机变量,p指出现某个随机变量的概率
在这里插入图片描述
所有概率之和等于1
在这里插入图片描述
数学期望
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值