Basic radiometry (辐射度量学)
Radiant flux
Radiant energy Definition: Radiant energy is the energy of lectromagnetic radiation. It is measured in units of joules, and denoted by the symbol:
Radiant flux (power) Definition: Radiant flux (power) is the energy emitted,reflected, transmitted or received, per unit time.
flux是功率,可以看成是单位时间辐射出来的光子数量
intensity
Radiant Intensity 是单位立体角上点光源的功率
立体角是在球上一个角对应面积与球半径平方的比值。
当立体角发生微小变化时,dA是对应的面积,可以发现这个角度和\(\theta\)角相关,也就是说一个微小立体角对应的面积其实和角与赤道和向上轴之间的夹角有关。
w是面积与半径平方的比值,当是单位长度时,这定义了一个方向(因为和\(sin\theta\)相关)
如果对球面上各个方向的光线做积分。可以得到这个点光源的功率。同时,点光源发出的Itensity是各向同性的,所以I可以由\(I=\frac\Phi{4\pi}\)得到。
也就是说立体角定义了空间中一个角。然后Intensity定义了单位立体角上点光源的功率。
irradiance
Definition: The irradiance is the power per unit area incident on a surface point.
平面上一点接收到的单位面积的功率。
radiance
【这实际上定义了一个光线,对于接受到它的物体而言,可以对立体角积分得到Irradiance然后再对面积积分得到Energy】
radiance是描述环境中光分布的基本场量
radiance是与光线相关的量
渲染的计算围绕radiance
Definition: The radiance (luminance) is the power emitted, reflected, transmitted or received by a surface, per unit solid angle, per projected unit area.
定义在单位立体角上单位面积辐射出来的功率。
然后,有了以上定义就可以解释单位面积入射和射出来的Radiance了。
Incident radiance(入射Radiance)是每单位立体角的irradiance。
Exiting Radiance(出射Radiance)可以认为是每个Intensity(Intensity对于这个单位面积来说就是来源于一个单位立体角的光线)在单位面积上的功率。
Radiance 和 Irradiance 之间的关系
Irradiance 是这个单位面积上收到的total power
Radiance 是这个单位面积上收到的来自一个单位角的power
对Radiance在单位角上积分,就可以得到Irradiance:
\(cos\theta\)的意思是要与平面垂直。
Bidirectional Reflectance Distribution Function(BRDF)
反射就是我这个单位面积上的Irradiance对立体角微分出去,可以得到沿方向上的Radiance。同时Irradiance又是对入射Radiance的积分,所以如果直接定义某个方向的入射Radiance对某个方向的出射Radiance,就是反射的过程。可以通过BRDF定义。
双向反射分布函数 (BRDF) 表示有多少光从每个入射方向反射到每个出射方向。【BRDF定义了每个入射和出射radiance之间的关系】
反射方程
但是这里有一个问题是入射的光其实也来源于别的点的反射。
渲染方程
总而言之,渲染方程可以认为是场景中所有光源发出的辐射和所有光源反射出来的辐射:
渲染方程出来之后,其实问题变为了怎么求解【老师的原PPT和课程简直是优雅,不开心的时候可以去听一听】:
首先,简写一下:
然后,再抽象一下,写成算子:
变换一下,发现\((I-K)^{-1}\),这个东西类似泰勒展开里的\(\frac{1}{1-x}=1+x+x^2+x^3+...+o^n(x)\)然后展开就变成了这样:
它的物理意义可以解释为,这个L表示场景里的全局光照,它包括了直接光照和间接光照(在场景中进行一次弹射的光、2次弹射、。。。n次弹射的光,PPT上的弹射指的是对间接光照的弹射)。
光栅化的过程只囊括了直接能看到光源和Direct illumination on surfaces也就是物体表面反射过来的光。【当然光栅化也能做多次弹射】
一些例子(有一个例子是,看到镜子里的物体其实光线需要弹射两次:光-物体-镜子-眼睛;这里弹射不仅仅只有反射了是指光线打到物体的过程)
仔细观察上面那个灯。
Direct illumination(自己发出的光+弹射一次)是亮的。光-屋檐-(眼睛)【我感觉这里发光的主要原因是没有计算进入玻璃的之后的弹射,有待考究】。
One-bounce global illumination (自己发出的光+弹射两次)(dir+indir)不亮。光-屋檐-玻璃正面1-(玻璃正反面1之间)【无法到达眼睛,甚至还没有进入灯罩内部】
Two-bounce global illumination(自己发出的光+弹射三次)也不亮。光-屋檐-玻璃正面1-玻璃反面1-(灯罩内部)【进入了灯罩内部】。
Four-bounce global illumination(自己发出的光+弹射五次)亮。光-屋檐-玻璃正面1-玻璃反面1-玻璃反面2-玻璃正面2-(眼睛)。