图形学(6)Photometry
鉴于计算的复杂度,渲染仅涉及几何光学:光被看作一条射线,并且假定光的速度无限,在每一帧内一束光线能够立即到达终点。
光度量学的概念基本等同于辐射度量学,只是由于人眼对不同波长的光的敏感程度不同,引入光度量的概念,两者之间根据人眼的视效函数换算。
光能 Luminous Energy
光通量 Luminous Flux(power)
照度 Illuminance
注意到对任意一个面我们可以知道它的光通量 \(\Phi\),参考密度,我们定义照度是光通量在面上的密度函数。
光度 Illumious Intensity
参考照度,在立体角上定义光通量的密度函数光度。
亮度 Luminance
我们希望能够用一个量描述一根光线,光线同时具有位置和方向,描述光线应当对位置和方向都求微分:
考虑任取射线 \(P\) 行进中的一个点 \(O\),在以 \(OP\) 为法向量的平面上我们能够定义 \(O\) 点的 Illuminance \(\displaystyle\frac{\mathrm d\Phi}{\mathrm dA}\),但 \(O\) 点的 Illuminance 并不完全来自方向 \(PO\),所以我们考虑计算出 \(E_O\) 在 \(O\) 的立体角上的密度函数 \(L=\displaystyle\frac{\mathrm dE_O}{\mathrm d\omega}=\frac{\mathrm d^2 \Phi}{\mathrm dA\mathrm d\omega}\),并取其在 \(OP\) 方向的值 \(L(O,OP)\),称为射线的亮度。
形象地说,在现实中如果我们想要测量亮度 \(L(\mathbf o,\vec d)\),考虑一个仪器,其底端具有 \(\mathrm dA\) 的面积,并且只接收立体角 \(\mathrm d\omega\) 内的光线,并计算出 \(\mathrm dA\) 的光通量 \(\mathrm d\Phi\)
如果我们让 \(\mathrm dA\rightarrow \mathbf o,\mathrm d\omega\rightarrow \vec d\),则有 \(\displaystyle L(\mathbf o,\vec d)=\frac{\mathrm d\Phi}{\mathrm dA\mathrm d\omega}\)
事实上我们看到一个点的颜色与这个点到视网膜的射线的亮度正相关,所以如果我们直接给亮度 RGB 分量当作颜色来计算。
至此我们可以定量地描述 lambert cosine law:
考虑一个平面 \(H\),由于射线 \(PO\) 的亮度定义中的 \(\mathrm dA\) 垂直于 \(PO\),若 \(H\) 的法向量与 \(OP\) 的夹角为 \(\theta\),则在 \(H\) 上的 \(\mathrm dA'=\displaystyle\frac{\mathrm{d}A}{\cos\theta}\),故对于平面 \(H\),\(L_H=L\cos\theta\)。
对法线所在的半球积分,有