(个人笔记,由于刚开始学习再加上英语不太好,所以有的地理解的可能不太对,望指正)
Chapter 18 Light
18.1 Radiometry
光从本质上来说是一种能量的传播形式,单位是焦耳(joule, J)。
18.1.1 Photons
对于本章的目的来说,光子是一个拥有位置,传播方向和波长 λ \lambda λ的光量子(a quantum of light)。一个光子的速度为 c c c,这个速度只取决于介质的折射率 n n n,它的频率为 f = c / λ f=c/\lambda f=c/λ,不同于 λ \lambda λ和 c c c,当光进入一个折射率不同的介质时,它是不发生变化的。
一个光子所带的能量为:
q = h f = h c λ q = hf = \frac{hc}{\lambda} q=hf=λhc
其中 h = 6.63 ∗ 1 0 − 34 J h=6.63*10^{-34}J h=6.63∗10−34J,称为普朗克系数。
18.1.2 Spectral Energy
当 Δ λ \Delta\lambda Δλ趋近于0时, Q λ Q_{\lambda} Qλ的值会为0或者非常依赖于是否有一个光子位于给定的区域内。有两种思想流派应对这个问题,第一个是 Δ λ \Delta\lambda Δλ会很小但是不会小于光子发挥物理性能的范围,第二个是假定光是一个连续的状态而不是单独的光子,这两种不同的思路的解决方案是相同的。
Q λ Q_{\lambda} Qλ称为spectral energy,单位是J/nm。在图形学忠energy很少被使用,所以用 Q Q Q替代 Q λ Q_{\lambda} Qλ。
Q = Δ q Δ λ Q = \frac{\Delta q}{\Delta\lambda} Q=ΔλΔq
18.1.3 Power
光源产生能量的频率称为power,单位为瓦(watts, W),等价于J/s。
Φ λ \Phi_{\lambda} Φλ称为spectral power,单位是W/nm,在图形学中也会使用省略 λ \lambda λ角标的表示方法。
Φ = Δ q Δ t Δ λ \Phi = \frac{\Delta q}{\Delta t \Delta\lambda} Φ=ΔtΔλΔq
18.1.4 Irradiance
对于一个点来说,接收到光的量的0,也是没有意义的,所以需要使用一个密度函数,所以产生了irradiance(辐照度)的概念,单位为 W / m 2 W/m^2 W/m2。
H = Δ Φ Δ A = Δ q Δ A Δ t Δ λ H=\frac{\Delta\Phi}{\Delta A} = \frac{\Delta q}{\Delta A\Delta t\Delta\lambda} H=ΔAΔΦ=ΔAΔtΔλΔq
光离开平面的辐照度也称为radiant exitance, E。
18.1.5 Radiance
irradiance描述了到达顶点光的数量,但是没有说明光的方向,为了类比人眼看到的内容,需要一个物理量能够描述在指定方向接收到光的数量。
这个物理量称为spectral radiance(辐射率)。
L = Δ H Δ σ L = \frac{\Delta H}{\Delta\sigma} L=ΔσΔH
radiance的优点之一是不随空间距离变化而改变
由于 Δ A \Delta A ΔA可能并不与平面重合,所以需要添加一个cosine校正参数
L = Δ H Δ σ c o s θ L = \frac{\Delta H}{\Delta\sigma cos\theta} L=ΔσcosθΔH
离开平面的辐射率用 L s L_{s} Ls表示,到达平面的辐射率用 L f L_f Lf表示。
如果一个表面的field radiance是 L f L_f Lf,那么可以利用它推导出其他的辐射量。
H = ∫ a l l k L f ( k ) c o s θ d σ H = \int_{all\ k}L_f(k)cos\theta d\sigma H=∫all kLf(k)cosθdσ
假设对于所有入射光线k的辐射率都是相同的,使用球坐标来表示立体角
d σ ≡ s i n θ d θ d ϕ d\sigma \equiv sin\theta d\theta d\phi dσ≡sinθdθdϕ
所以辐照度为
H = ∫ ϕ = 0 2 π ∫ θ = 0 π 2 L f c o s θ s i n θ d θ d ϕ = π L f H = \int_{\phi = 0}^{2\pi}\int_{\theta=0}^{\frac{\pi}{2}}L_fcos\theta sin\theta d\theta d\phi =\pi L_f H=∫ϕ=02π∫θ=02πLfcosθsinθdθdϕ=πLf
到达表面的能量可以表示为
Φ = ∫ a l l X H ( X ) d A \Phi = \int_{all\ X}H(X)dA Φ=∫all XH(X)dA
18.1.6 BRDF
为了描述一个表面是如何反射光的,可以从直观上来看,对于一个从 k i k_i ki方向到达的入射光,会有一部分光反射到 k o k_o ko方向的一个立体角。可以利用辐射率测量仪器进行测量
在测量得到 ( k i , k o ) (k_i, k_o) (ki,ko)的测量结果后,也需要确保反射函数与光的强度无关,但是测量仪器会计算测量范围之外的光(好像是这个意思…)
所以可以将一个辐照度测量仪在需要测量的表面位置处,它的结果会准确很多。可以将反射表示为一个比率
ρ = L s H \rho = \frac{L_s}{H} ρ=HLs
H H H是光 k i k_i ki处的辐照度, L s L_s Ls是 k o k_o ko方向测量的辐射率。如果对于所有入射、出射方向都建立测量,那么会得到一个4D函数 ρ ( k i , k o ) \rho(k_i, k_o) ρ(ki,ko),这个函数被称为bidirectional reflectance distribution function(BRDF)
Directional Hemispherical Reflectance
反射光的比率依赖于入射光的定向分布,基于这个原因,通常只需要设置固定的入射方向 k i k_i ki反射的比率,称为directional hemispherical reflectance
R ( k i ) = p o w e r i n a l l o u t g o i n g d i r c t i o n k o p o w e r i n a b e a m f r o m d i r e c t i o n k i R(k_i) = \frac{power\ in\ all\ outgoing\ dirction\ k_o}{power\ in\ a\ beam\ from\ direction\ k_i} R(ki)=power in a beam from direction kipower in all outgoing dirction ko
处于能量保存的原因,这个值只能位与0到1之间。入射的能量是 Φ i \Phi_i Φi,它到达一个面积为 Δ A \Delta A ΔA的区域,所以入射光的辐照度为 Φ i / Δ A \Phi_i /\Delta A Φi/ΔA,所以这个比率也可以表示为
R ( k i ) = E H R(k_i)=\frac{E}{H} R(ki)=HE
根据以上定义
L ( k o ) = H ρ ( k i , k o ) = Φ i Δ A ( ? ? ? ? 为 啥 ) L(k_o) = H\rho (k_i, k_o) = \frac{\Phi_i}{\Delta A}(????为啥) L(ko)=Hρ(ki,ko)=ΔAΦi(????为啥)
根据辐射率的定义
L ( k o ) = Δ E Δ σ o c o s θ o L(k_o)=\frac{\Delta E}{\Delta \sigma_o cos\theta_o} L(ko)=ΔσocosθoΔE
所以有
H ρ ( k i , k o ) = Δ E Δ σ o c o s θ o Δ E H = ρ ( k i , k o ) Δ σ o c o s θ o H\rho (k_i, k_o) = \frac{\Delta E}{\Delta \sigma_o cos\theta_o} \\ \frac{\Delta E}{H} = \rho (k_i, k_o)\Delta \sigma_o cos\theta_o Hρ(ki,ko)=ΔσocosθoΔEHΔE=ρ(ki,ko)Δσocosθo
可以导出 R ( k i ) R(k_i) R(ki)的公式
R ( k i ) = ∫ a l l k o ρ ( k i , k o ) c o s θ o d σ o R(k_i) = \int_{all\ k_o}\rho (k_i, k_o) cos\theta_o d\sigma_o R(ki)=∫all koρ(ki,ko)cosθodσo
Ideal Diffuse BRDF
一种理想表面称为Lambertian,这种表面的 ρ \rho ρ值对于所有角度都是等于一个常数,这表示表面对于所有的观察角度都具有相同的辐射率,并且这个辐射率与辐照度成比例
假定 ρ = C \rho=C ρ=C,有
R ( k i ) = ∫ a l l k o C c o s θ o s i n θ o d σ o = ∫ ϕ = 0 2 π ∫ θ = 0 π 2 C c o s θ o s i n θ o d θ o d ϕ o = π C R(k_i)=\int_{all\ k_o}Ccos\theta_osin\theta_o d\sigma_o \\ = \int_{\phi = 0}^{2\pi}\int_{\theta=0}^{\frac{\pi}{2}}Ccos\theta_o sin\theta_o d\theta_o d\phi_o = \pi C R(ki)=∫all koCcosθosinθodσo=∫ϕ=02π∫θ=02πCcosθosinθodθodϕo=πC
对于完美反射的Lambertian表面(R = 1),有 ρ = 1 / π \rho=1/\pi ρ=1/π,对于 R ( k i ) = r R(k_i)=r R(ki)=r的Lambertian表面有
ρ ( k i , k o ) = r π \rho(k_i, k_o) = \frac{r}{\pi} ρ(ki,ko)=πr
18.2 Transport Equation
如果利用方向为 Δ σ i \Delta \sigma_i Δσi辐射率为 L i L_i Li的光线来测量 k o k_o ko方向对应的一部分的反射率,可以计算出BRDF
H = L i c o s θ i Δ σ i ρ = L o L i c o s θ i Δ σ i H = L_icos\theta_i\Delta\sigma_i \\ \rho = \frac{L_o}{L_icos\theta_i\Delta\sigma_i} H=LicosθiΔσiρ=LicosθiΔσiLo
调整这个公式,可以得到来自于方向为 k i k_i ki的光线的辐射率微分
Δ L o = ρ ( k i , k o ) L i c o s θ i Δ σ i \Delta L_o=\rho(k_i, k_o)L_icos\theta_i \Delta\sigma_i ΔLo=ρ(ki,ko)LicosθiΔσi
如果光线来自于多个方向,那么可以求它们的和
L s ( k o ) = ∫ a l l k i ρ ( k i , k o ) L f ( k i ) c o s θ i d σ i L_s(k_o) = \int_{all\ k_i}\rho(k_i, k_o)L_f(k_i)cos\theta_i d\sigma_i Ls(ko)=∫all kiρ(ki,ko)Lf(ki)cosθidσi
该公式在图形学领域也被称为rendering equation
有时仅依据表面辐射率来表示transform equaton也是很有效的。在一个封闭空间中,表面上的一点的入射光辐射率是来自于另一个平面的反射率 L s ( − k i ) = L f ( k i ) L_s(-k_i)=L_f(k_i) Ls(−ki)=Lf(ki)
从点 x ′ x' x′发出的立体角为
Δ σ i = Δ A ′ c o s θ ′ ∣ ∣ x − x ′ ∣ ∣ 2 \Delta \sigma_i=\frac{\Delta A'cos\theta'}{||x-x'||^2} Δσi=∣∣x−x′∣∣2ΔA′cosθ′
其中 Δ A ′ \Delta A' ΔA′表示与 x ′ x' x′关联的面积,将该式带入之前 L s ( k o ) L_s(k_o) Ls(ko)的表达式中
L s ( x , k o ) = ∫ a l l x ′ v i s i b l e t o x ρ ( x ′ , x − x ′ ) c o s θ i c o s θ ′ ∣ ∣ x − x ′ ∣ ∣ 2 d A ′ L_s(x, k_o) = \int_{all\ x'\ visible\ to\ x}\frac{\rho(x', x-x')cos\theta_icos\theta'}{||x-x'||^2}dA' Ls(x,ko)=∫all x′ visible to x∣∣x−x′∣∣2ρ(x′,x−x′)cosθicosθ′dA′
利用遮挡函数
v ( x , x ′ ) = { 1 i f x a n d x ′ a r e m u t u a l l y v i s i b l e 0 o t h e r w i s e v(x, x') = \begin{cases} 1\ if\ x\ and\ x'\ are\ mutually\ visible \\ 0\ otherwise \end{cases} v(x,x′)={1 if x and x′ are mutually visible0 otherwise
替代积分区间可以有
L s ( x , k o ) = ∫ a l l x ′ ρ ( x ′ , x − x ′ ) v ( x , x ′ ) c o s θ i c o s θ ′ ∣ ∣ x − x ′ ∣ ∣ 2 d A ′ L_s(x, k_o) = \int_{all\ x'}\frac{\rho(x', x-x')v(x,x')cos\theta_icos\theta'}{||x-x'||^2}dA' Ls(x,ko)=∫all x′∣∣x−x′∣∣2ρ(x′,x−x′)v(x,x′)cosθicosθ′dA′
18.3 Photometry
每个光谱辐射量(spectral radiometric quantity)都有一个对应的光度值(photometric quantity)来表示有多少被人眼接收到的有效量,对于一个给定的光谱辐射量 f r ( λ ) f_r(\lambda) fr(λ)其对应的 f p f_p fp是
f p = 683 l m W ∫ λ = 380 n m 800 n m y ˉ ( λ ) f r ( λ ) d λ f_p=683\frac{lm}{W}\int_{\lambda=380nm}^{800nm}\bar{y}(\lambda)f_r(\lambda)d\lambda fp=683Wlm∫λ=380nm800nmyˉ(λ)fr(λ)dλ
其中 y ˉ ( λ ) \bar{y}(\lambda) yˉ(λ)是人视觉系统的发光效率函数(luminous efficiency function),它在积分区间外为0。
不同波长的光对应的发光效率函数的灵敏程度不同
图形学中最常用的光度值是明度(luminance)
Y = 683 l m W ∫ λ = 380 n m 800 n m y ˉ ( λ ) L ( λ ) d λ Y = 683\frac{lm}{W}\int_{\lambda=380nm}^{800nm}\bar{y}(\lambda)L(\lambda)d\lambda Y=683Wlm∫λ=380nm800nmyˉ(λ)L(λ)dλ
明度的单位为 ( l m / W ) ( W / ( m 2 s r ) ) = l m / ( m 2 s r ) (lm/W)(W/(m^2sr))=lm/(m^2sr) (lm/W)(W/(m2sr))=lm/(m2sr),lm为流明(lumens)。