辐射度量学

Basic radiometry 辐射度量学

在物理上准确定义光照的方法

WHY

Whitted Style 的ray tracing 也只是用的Blinn-Phong模型做的光照着色。
而Blinn-Phong既没有单位也没有能量守恒,是十分不精准的

:::info 说白了那就是在WhittedStyle提出的光线追踪框架上,补充了光能量如何计算的这个部分
而不是用经验值。 :::

WHAT

辐射度量学就是为了得到精准结果的,计算实际光的一系列物理量的方法。

  • 精确的描述物体表面如何与光进行作用。
  • 基于几何光学(光沿直线传播)
  • 定义光照的几个属性

    HOW

    👇

    辐射度量学研究光:发射,接收,传播

    Light Measurement of Interest
    image.png

    能量 Radiant Energy & Flux(Power)

    电磁辐射的能量,

  • 以焦耳Joules为单位,

  • 符号是Q

image.png

功率 Radiant Flux(Power)

单位时间的能量,

  • 以瓦特为单位,(就是功率)也可以是流明lm
  • 符号是ф

image.png
一个理解Flux的例子,摄像机传感器单位时间通过的光
image.png

光强 Radiant/Luminous Intensity (对于发射光源)

每个单位立体角的Power/Flux
image.png

Angles and Solid Angles

科学上用弧度来定义一个角(弧长/半径)
image.png
所以立体角是弧度制在空间上的延申,即A的面积

单位/微分 立体角 Differential Solid Angles

定积分:
a到b的固定面积,是许多dx加起来求和
image.png
b a是一个区间
image.png
不定积分:
面积不再是固定值,而是函数。例如在x上给定一个a值,得到函数对应面积
image.png
这里为什么多出了个sinθ,因为横向的圆投影面半径就是rsinθ
image.pngimage.png

积分一下可以得到单位球表面积4PI
所以立体角可以用两个角度表示,作为一个方向向量
image.png
立体角知识补充:
image.png

对于一个均匀球体的光强Intensity

image.png
把各个角度上的intensity积分起来就可以得到Power/Flux
平均的每个方向上的intensity就是Flux除以4PI

对于一个LED灯

image.png
Power是815流明,实际上功耗是11w,相当于60w的白炽灯亮度

辐照 Irradiance (对于接收光的物体)

单位面积(与光线入射方向垂直)上的能量,来自于所有方向的光线
image.png

这个与入射方向垂直的单位面积(单位面积投影)在之前介绍blinn-phong着色模型的时候也用了,就是Lambert Cosine Law
image.png
所以通用情况下:image.png
下面出现的cosθ,基本上都是值得这个投影修正。

Irradiance Falloff 修正

之前在Blinn-phong中说到能量衰减就是 I/r^2
15. Ray Tracing 3 - 图19

而在Irradiance的概念中是单位面积上接收的能量来理解:
image.png
Intensity并没有变,是Irradiance变化了
即单位立体角内往四面八方发射的光的能量没有变化,变化的是单位面积接收到的能量变化。

辐射 Radiance/Luminance

描述光线的属性
image.png
在单位面积上朝一个立体角发射出的能量
image.png

联系

  • Irradiance:Power per projected unit area
  • Intensity : Power per solid angle

所以

  • Radiance:Irradiance per solid angle
  • Radiance:Intensity per projected unit area

所以就有这样两种理解:

Incident Radiance 入射光线

image.png
从这个意义上看,radiance和irradiance的区别就是方向性,前者是某个特定方向,后者包含了所有方向,前者像是一个irradiance加了一个方向(在分母位置)滤波器
15. Ray Tracing 3 - 图24
进一步地,
image.png

Exiting Radiance 出射光线

可以认为是物体反射光线出去别的物体,或者自发光物体
image.png
从这个意义上看,radiance和intensity的区别是区域性方向,前者是来自某个特定区域,后者包含了所有区域,前者像是一个intensity加了一个区域(在分母位置)滤波器
15. Ray Tracing 3 - 图27

光路传播 Light transport

如何去定义Irradiance 和Radiance

BRDF 双向反射分布函数

Bidirectional Reflectance Distribution Function
image.png
其中

  • L0(v)是出射光的辐射率,
  • E(l)是入射光的辐照度。

这个式子表现出BRDF是一个比例,告诉了我们一个小的区域把多少收到的辐照反射出去

从一点的反射来理解BRDF

irradiance是来自四面八方的radiance,

如何理解反射的过程

反射

  • 漫反射
  • 镜面反射

光线打到物体上,能量被物体吸收了,然后又发射出去
incident radiance - power - exiting radiance

BRDF作用

需要一个函数能够描述,

  1. 有多少能量从某个方向进来,
  2. 反射到什么方向去,不同方向分布多少能量

image.png
这就是BRDF做的事情,描述光线与物体是如何作用的

how much light is reflected into each outgoing direction from each incoming direction

入射光线被反射了多少就是BRDF
image.png
另一个问题是要往什么方向反射呢?其实cos就已经能够说明这个问题,它是一个微分的单位面积,在漫反射表面就是犬牙的各个微小表面,在镜面反射就是各个一致的平坦表面。cos的值来自法线和入射方向,法线本身就能反应出射方向,同时cos又影响了出射的能量。

BSDF

Bidirectional Scattering Distribution Function 双向散射分布函数
BSDF是普遍意义上的说法,反映光入射与出射的强度对应关系。 :::info 比如blender用的 Principled BSDF ::: 为什么这么说呢,因为反射和折射都是弹性散射
image.png
所以BSDF= BRDF + BTDF
image.png

反射方程 Reflection Equation

image.png

:::danger BRDF只是对于某一个角度来的入射光如何反射到指定角度,
对于某一个着色点,积分把所有入射方向的radiance,经过BRDF,看它们对指定出射方向(相机方向)的贡献,加起来就是最后的着色。
so
表达式意思是:把每一个入射光的强度L乘以它对应的BRDF,然后积分加起来,就是出射的方向和光强
反射方程就是描述所有方向上的光对观测方向的贡献 :::

从表达式和实际上着色点接受的不只是光源还可能是其他物体的反射光,可以知道这是一个递归的过程
image.png

渲染方程 Rendering Equation

就是反射方程加上自发光
image.png
只考虑半球,那就是方向向外,(另一半球贡献为0,背面打过来的光没有用)
image.png2

渲染方程的递归表示

当又来自其他物体反射的光照亮着色点的时候,就像图中青色部分,结果就是位置的,需要递归去求解,
image.png
这个递归方程还可以进一步简写为: L = E+ KL 这里大写字母都是矩阵算子形式
然后用泰勒展开进一步计算
image.pngimage.png
所以最后的结果就是看到光源直接本身+光源辐射的能量一次反射之后看到的(直接光照)+二次反射(间接光照)+三次+++
这就是对光源弹射次数的一个分解。这里就把自发光,直接光照,间接光照,全局光照都包含进去了
之前光栅化做的部分就是:L = E+KE

渲染方程的结果代表什么

代表的是辐射光线
它的值不是颜色,需要进行Gamma矫正才是颜色。

概率论

随机与期望

image.png

当概论分布函数PDF是连续的,就用积分
image.png
当一个函数Y的变量是随机变量X,那么Y的期望:
image.png
期望就是可能出现的结果对概率的加权平均,但不一定是平均值。
举个简单的例子:
你买了一张彩票,有20%的概率中10块,30%的概率中5块,50%的概率不中。
那你能得到的钱的期望值是多少呢?
期望值=20%10+30%5+50%*0=2+1.5+0=3.5,也就是说买彩票能期望得到3.5的钱。