辐射度量学
Basic radiometry 辐射度量学
在物理上准确定义光照的方法
WHY
Whitted Style 的ray tracing 也只是用的Blinn-Phong模型做的光照着色。
而Blinn-Phong既没有单位也没有能量守恒,是十分不精准的
:::info
说白了那就是在WhittedStyle提出的光线追踪框架上,补充了光能量如何计算的这个部分
而不是用经验值。
:::
WHAT
辐射度量学就是为了得到精准结果的,计算实际光的一系列物理量的方法。
- 精确的描述物体表面如何与光进行作用。
- 基于几何光学(光沿直线传播)
-
HOW
辐射度量学研究光:发射,接收,传播
能量 Radiant Energy & Flux(Power)
电磁辐射的能量,
以焦耳Joules为单位,
- 符号是Q
功率 Radiant Flux(Power)
单位时间的能量,
- 以瓦特为单位,(就是功率)也可以是流明lm
- 符号是ф
光强 Radiant/Luminous Intensity (对于发射光源)
Angles and Solid Angles
科学上用弧度来定义一个角(弧长/半径)
所以立体角是弧度制在空间上的延申,即A的面积
单位/微分 立体角 Differential Solid Angles
定积分:
a到b的固定面积,是许多dx加起来求和
b a是一个区间
不定积分:
面积不再是固定值,而是函数。例如在x上给定一个a值,得到函数对应面积
这里为什么多出了个sinθ,因为横向的圆投影面半径就是rsinθ
积分一下可以得到单位球表面积4PI
所以立体角可以用两个角度表示,作为一个方向向量
立体角知识补充:
对于一个均匀球体的光强Intensity
把各个角度上的intensity积分起来就可以得到Power/Flux
平均的每个方向上的intensity就是Flux除以4PI
对于一个LED灯
Power是815流明,实际上功耗是11w,相当于60w的白炽灯亮度
辐照 Irradiance (对于接收光的物体)
单位面积(与光线入射方向垂直)上的能量,来自于所有方向的光线
这个与入射方向垂直的单位面积(单位面积投影)在之前介绍blinn-phong着色模型的时候也用了,就是Lambert Cosine Law
所以通用情况下:
下面出现的cosθ
,基本上都是值得这个投影修正。
Irradiance Falloff 修正
之前在Blinn-phong中说到能量衰减就是 I/r^2
而在Irradiance的概念中是单位面积上接收的能量来理解:
Intensity并没有变,是Irradiance变化了
即单位立体角内往四面八方发射的光的能量没有变化,变化的是单位面积接收到的能量变化。
辐射 Radiance/Luminance
联系
- Irradiance:Power per projected unit area
- Intensity : Power per solid angle
所以
- Radiance:Irradiance per solid angle
- Radiance:Intensity per projected unit area
Incident Radiance 入射光线
从这个意义上看,radiance和irradiance的区别就是方向性,前者是某个特定方向,后者包含了所有方向,前者像是一个irradiance加了一个方向(在分母位置)滤波器
进一步地,
Exiting Radiance 出射光线
可以认为是物体反射光线出去别的物体,或者自发光物体
从这个意义上看,radiance和intensity的区别是区域性方向,前者是来自某个特定区域,后者包含了所有区域,前者像是一个intensity加了一个区域(在分母位置)滤波器
光路传播 Light transport
BRDF 双向反射分布函数
Bidirectional Reflectance Distribution Function
其中
- L0(v)是出射光的辐射率,
- E(l)是入射光的辐照度。
这个式子表现出BRDF是一个比例,告诉了我们一个小的区域把多少收到的辐照反射出去
从一点的反射来理解BRDF
如何理解反射的过程
反射
- 漫反射
- 镜面反射
光线打到物体上,能量被物体吸收了,然后又发射出去
incident radiance - power - exiting radiance
BRDF作用
需要一个函数能够描述,
- 有多少能量从某个方向进来,
- 反射到什么方向去,不同方向分布多少能量
这就是BRDF做的事情,描述光线与物体是如何作用的
how much light is reflected into each outgoing direction from each incoming direction
入射光线被反射了多少就是BRDF
另一个问题是要往什么方向反射呢?其实cos就已经能够说明这个问题,它是一个微分的单位面积,在漫反射表面就是犬牙的各个微小表面,在镜面反射就是各个一致的平坦表面。cos的值来自法线和入射方向,法线本身就能反应出射方向,同时cos又影响了出射的能量。
BSDF
Bidirectional Scattering Distribution Function 双向散射分布函数
BSDF是普遍意义上的说法,反映光入射与出射的强度对应关系。
:::info
比如blender用的 Principled BSDF
:::
为什么这么说呢,因为反射和折射都是弹性散射
所以BSDF= BRDF + BTDF
反射方程 Reflection Equation
:::danger
BRDF只是对于某一个角度来的入射光如何反射到指定角度,
对于某一个着色点,积分把所有入射方向的radiance,经过BRDF,看它们对指定出射方向(相机方向)的贡献,加起来就是最后的着色。
so
表达式意思是:把每一个入射光的强度L乘以它对应的BRDF,然后积分加起来,就是出射的方向和光强
反射方程就是描述所有方向上的光对观测方向的贡献
:::
从表达式和实际上着色点接受的不只是光源还可能是其他物体的反射光,可以知道这是一个递归的过程
渲染方程 Rendering Equation
就是反射方程加上自发光
只考虑半球,那就是方向向外,(另一半球贡献为0,背面打过来的光没有用)
2
渲染方程的递归表示
当又来自其他物体反射的光照亮着色点的时候,就像图中青色部分,结果就是位置的,需要递归去求解,
这个递归方程还可以进一步简写为: L = E+ KL 这里大写字母都是矩阵算子形式
然后用泰勒展开进一步计算
所以最后的结果就是看到光源直接本身+光源辐射的能量一次反射之后看到的(直接光照)+二次反射(间接光照)+三次+++
这就是对光源弹射次数的一个分解。这里就把自发光,直接光照,间接光照,全局光照都包含进去了
之前光栅化做的部分就是:L = E+KE
渲染方程的结果代表什么
代表的是辐射光线
它的值不是颜色,需要进行Gamma矫正才是颜色。
概率论
随机与期望
当概论分布函数PDF是连续的,就用积分
当一个函数Y的变量是随机变量X,那么Y的期望:
期望就是可能出现的结果对概率的加权平均,但不一定是平均值。
举个简单的例子:
你买了一张彩票,有20%的概率中10块,30%的概率中5块,50%的概率不中。
那你能得到的钱的期望值是多少呢?
期望值=20%10+30%5+50%*0=2+1.5+0=3.5,也就是说买彩票能期望得到3.5的钱。