計算機圖形學(一)——輻照度學概述


輻照度(irradiance)定義為電磁輻射入射於曲面時每單位面積的功率,直觀理解為能量在入射點處的量化值。在計算機圖形學中,就是要求解場景中任意位置的輻照度大小。如果求得輻照度的大小,剩下的事情就是如何利用所求解得到的輻照度渲染出一張靜幀圖像,而不同的求解方法,對應着不同的渲染算法,每一個算法都有其獨特的風格。本部分就是要理清計算機圖形學中最基本的輻照度物理量之間的定義與關系。

 

1.1 立體角

 

立體角的概念其實是平面幾何中角的概念的擴展。數學上定義平面角度是在單位圓上,兩射線張角的弧長即為張出的角度,單位為radian;則類比平面幾何中對角度的定義,我們可以去如下定義立體角的概念:在單位球體上,球心處一個錐形包含的球表面積定義為這個錐形的立體角(如圖1),單位為stereo radian,簡寫為sr。計算機圖形學中常用粗體的來表示一個立體角。需要注意的是,立體角的形狀並不僅限於像圖1中那樣的錐形,還可以是像那樣的不規則形狀,我們僅用單位圓內該立體角內部包含的球表面積來度量它的角度,由於單位球面的表面積為$4\pi$,所以一個立體角的取值范圍也在$\left[{0,4\pi}\right]$之間。有了上述的介紹,我們就可以繼續定義立體角的微分了。即當一個立體角所包含的單位球表面積趨於$0$時,我們稱其為立體角的微分,寫為。為表述簡便,后續有關“方向”的概念,如果沒有特殊說明,默認都是在說指向這個方向的一個立體角。

 

1.2 輻照度中的基本量及其關系

輻照度學中,定義了如下表1的常見基本量,詳細請參見相關的教材。

上述物理量中,較為常用的幾個物理量為輻射通量$\Phi_e$、輻照度$E_e$和輻射率$L_e$。為表述簡便,后續的內容都會省略角標,即簡寫為$\Phi$、$E$和$L$。現定義它們之間滿足的基本關系。

\begin{equation}
\label{eq:E}
{E}=\frac{{{\rm{d}}{\Phi}}}{{{\rm{d}}A}}
\end{equation}
式中之所以用單位面積$\rm{d}A$上入射的功率$\Phi$而不是能量$Q$來定義輻照度$E$是因為前者考慮了時間因素,把時間度量統一到單位時間。如果按照后者來定義的話,會造成物理量$E$與時間相關,這樣做並不是一個明智的選擇。

 


定義垂直入射光方向的輻照度
\begin{equation}
\label{eq:Ebot}
{E_\bot}=\frac{{{\rm{d}}{\Phi}}}{{{\rm{d}}A_\bot}}
\end{equation}
根據圖2,上式中的$A_\bot$與$A$有如下的關系
\begin{equation}
\label{eq:aabot}
{A_\bot}=A\cos\theta
\end{equation}
式(\ref{eq:aabot})中,$\theta$是入射方向與法線的夾角,注意這里的$\theta$取值范圍為$0\le\theta\le\frac{\pi}{2}$,使得$cos\theta$總是非負數。為簡便起見,我們規定入射方向是沿着入射點朝向入射源的,直觀上這與“入射”的含義相悖,但是並不影響后續的分析。這樣一來,所有有關“方向”的概念都是沿物體表面入射點朝向表面外,反而會使很多式子的形式得到簡化。我們進而又能很簡單地得到$E$與$E_\bot$之間的關系
\begin{equation}
\label{eq:eebot}
{E_\bot}=\frac{E}{\cos\theta}
\end{equation}

有了式(\ref{eq:E}),我們可以進一步定義輻射率
\begin{equation}
\label{eq:L}
{L}=\frac{{{\rm{d}}{E_\bot}}}{{{\rm{d}}\bf{\omega}}}
\end{equation}
所以
\begin{equation}
\label{eq:llbot}
L=\frac{{{{\rm{d}}}\Phi }}{{{\rm{d}}{A_ \bot }{\rm{d}}\bf{\omega} }} = \frac{{{{\rm{d}}}\Phi }} {{\rm{d}}A{\rm{d}}\bf{\omega}\cos\theta}
\end{equation}
由(\ref{eq:eebot})、(\ref{eq:L})可得
\begin{equation}
\label{eq:elrelation}
{\rm{d}} E = L\cos \theta {\rm{d}}{\bf{\omega}}
\end{equation}
之所以定義輻射率的概念,是因為我們經常要衡量單位球表面上任意一點的輻照度,但是點的面積是不存在的,所以要用輻照度微分與立體角微分之比的形式來定義輻射率。式(\ref{eq:llbot})、(\ref{eq:elrelation})是很重要的公式,在之后對表面處的輻射率估計的推導中會經常用到。

 

1.3 符號約定

由於后續的推導過程中運用了大量的數學概念,我們在正式介紹這些內容之前,首先要約定符號的寫法以及各種物理量的表達方式,否則很容易造成混淆。我們規定:

1) 立體角用粗體小寫的$\bf{\omega}$來表示,其微分形式為${\rm{d}}{\bf{\omega}}$,這在1.1節中已經陳述。
2) 以物體表面任意點$x$處,沿表面局部法線建立的半球面區域寫為$\Omega_x$,其立體角恆為$2\pi$。
3) 雙向反射分布函數(下文會詳細介紹)用$f_r$來表示,且其第一個參數$x$為參考點的位置,第二個參數為入射方向,第三個參數為出射方向。
4) 表1中的輻照度(irradiance)和輻射度(radiosity)的符號應該予以統一,以符號$E_i$表示輻照度,以符號$E_o$表示輻射度。類似地,規定入射輻射率符號為$L_i$,出射輻射率符號為$L_o$。


1.4 雙向反射分布函數(BRDF)

1.4.1 BRDF的定義

雙向反射分布函數(Bidirectional Reflectance Distribution Function, BRDF),是用於描述物體表面性質的重要函數之一,它被定義為沿出射光方向$\bf{\omega}_o$出射的輻射率$L_o$與沿入射光方向$\bf{\omega}_i$入射的輻照度$E_i$的比值,單位為$\rm{sr^{-1}}$。由上述表述,則在物體表面$x$點處的BRDF的定義式即為

\begin{equation}
\label{eq:brdfdef}
f_r \left( {x,\bf{\omega} _i ,\bf{\omega} _o } \right) = \frac{{{\rm{d}}L_o (x,\bf{\omega} _o )}}{{{\rm{d}}E_i (x,\bf{\omega} _i )}} = \frac{{{\rm{d}}L_o \left( {x,\bf{\omega} _o } \right)}}{{{\rm{d}}E_{i,\bot} \left( {x,\bf{\omega} _i } \right)\cos \theta _i }} = \frac{{{\rm{d}}L_o \left( {x,\bf{\omega} _o } \right)}}{{L_i \left( {x,\bf{\omega} _i } \right)\cos \theta _i {\rm{d}}\bf{\omega} _i }}
\end{equation}

 

如圖3所示,為形式簡便,將入射方向規定為由參考點指向源點,這樣所有有關方向的物理量均統一為沿表面指向外界。${\bf{n}}$為物體局部法線,一束入射方向為$\bf{\omega}_i$的光線擊中物體表面$x$點處,其能量會在以$x$點處形成的半球面沿一定分布特征輻射出去。那么以$\bf{\omega}_i$為入射方向,以$\bf{\omega}_o$為我們要考察的出射方向,沿$\bf{\omega}_o$方向出射的能量${\rm{d}}{L_o}$與入射光線在$x$點處對物體表面的輻照度貢獻${\rm{d}}{E_i}$之比,即被定義為在$x$處,沿入射方向$\bf{\omega}_i$和出射方向$\bf{\omega}_o$的雙向反射系數$f_r\left({x,\bf{\omega}_i,\bf{\omega}_o}\right)$。

這里請注意式(\ref{eq:brdfdef})中“$\rm{d}$”的含義與數學上嚴格意義上的微分是有區別的,$L_o\left(x,{\bf{\omega}}_o\right)$是指在物體表面$x$點處,半球面${\bf{\omega}}_x$區域內所有入射光的能量總和作為輸入時,沿${\bf{\omega}}_o$方向出射的輻射率;而${\rm{d}}L_o\left(x,{\bf{\omega}}_o\right)$則特指以方向${\bf{\omega}}_i$處入射光的能量作為輸入時,沿${\bf{\omega}}_o$方向出射的輻射率。${\rm{d}}E_i\left(x,{\bf{\omega}}_i\right)$特指方向${\bf{\omega}}_i$處的輻照度。${\rm{d}}E_i\left(x,{\bf{\omega}}_i\right)$和$E_i\left(x,{\bf{\omega}}_i\right)$的含義是相同的。

針對BRDF的定義式,有如下兩個問題需要解釋:

1) 為什么要用微分形式去定義?
2) 為什么不定義成$\frac{{\rm{d}}{L_o}}{{\rm{d}}{L_i}}$或者$\frac{{\rm{d}}{E_o}}{{\rm{d}}{E_i}}$,使得它變成一個純粹的系數而不是一個具有量綱$\rm{sr^{-1}}$這樣奇怪的一個物理量?
接下來我們就來回答上面兩個問題。之所以要用微分形式去定義,在於后面有關BRDF的所有計算幾乎都涉及到積分,所以原始的BRDF定義式將BRDF定義為微分形式會更有利於后續對積分式的計算,而且形式美觀簡潔,但之后進行公式推導時,仍需要明確分子的$L_o$是特指${\bf{\omega}}_i$方向上對出射輻射率的貢獻,以后為強調這個事實,也常用$L_o \left( {x,{\bf{\omega}} _o } \right)\left| {_{{\bf{\omega}} _i } } \right.$表示${\rm{d}}L_o\left(x,{\bf{\omega}}_o\right)$;而針對BRDF的量綱問題,則可以這樣解釋:BRDF的定義是根據對實際現象的物理建模而得出的,這個量也最好應該能夠通過實驗儀器測得,那么定義式的形式,實際上就決定了對測量儀器的要求。直接測量物體表面某點沿某入射方向的入射光輻照率$L_i$是有困難的,而想測量沿着某一方向的出射輻射率$L_o$則很簡單,只需要將一個管狀測量儀器對准入射點處,就能測得沿着管狀測量儀出射的輻射率$L_o$。雖然測量入射光輻照率由困難,但是測量入射光的輻照度$E_i$則很簡單,因為輻照度沒有方向的概念,所以研究者僅需要制作一個半球狀的光線接收器即可。

實際計算的時候,通常是以物體表面參考點$x$為原點,以物體表面$x$點處指向物體表面外側的局部法線${\bf{n}}$為$z$軸建立的求坐標系來進行積分的求解,所以式(\ref{eq:brdfdef})中的BRDF定義式也可以寫為$f_r \left( {x,\theta _i ,\varphi _i ,\theta _o ,\varphi _o } \right)$,如果物體表面的反射特性與參考點$x$的位置無關(通常情況下),那么我們可以在$f_r$中省略變量$x$,變為$f_r \left( {\theta _i ,\varphi _i ,\theta _o ,\varphi _o } \right)$,圖3中$\theta _i$、$\varphi _i$是${\bf{\omega}}_i$的球坐標系參數表示,$\theta _o$、$\varphi _o$是${\bf{\omega}}_o$的球坐標系參數表示。
很多實驗室測得的BRDF數據都是一個巨大的四維表格(例如MERL BRDF數據庫,每種材質表面測得的BRDF數據有34MB,具體詳見http://www.merl.com/brdf/),用戶在實際使用這張表格的時候,就是依據$\theta _i$、$\varphi _i$、$\theta _o$和$\varphi _o$四個獨立變量來查表得到對應的BRDF值,進而完成渲染的。


1.4.2 BRDF的性質

BRDF具有以下三條重要性質:
1) 非負性:對於物體表面上任意點$x$以及半球面內所有${\bf{\omega}}_i$和${\bf{\omega}}_o$,BRDF函數值均非負。這一性質很好理解,即便是絕對黑體,它的BRDF也是恆為$0$而不可能出現負值。
\begin{equation}
f_r\left({x,{\bf{\omega}}_i,{\bf{\omega}}_o}\right) \ge 0
\end{equation}
2) 互易性:由基本光路可逆原理,若交換入射方向和出射方向,BRDF函數值不變。此性質可將原始BRDF數據量降為原來的一半。
\begin{equation}
f_r\left({x,{\bf{\omega}}_i,{\bf{\omega}}_o}\right) = f_r\left({x,{\bf{\omega}}_o,{\bf{\omega}}_i}\right)
\end{equation}
3) 能量守恆性:沿半球面向外輻射的輻射率總和應小於等於入射光的輻射率總和。即對於$\forall {\bf{\omega}}_i$,
\begin{equation}
\int\limits_{ \Omega _x } {f_r \left( {x,{\bf{\omega}} _i ,{\bf{\omega}} _o } \right)\cos {\theta _o } {\rm{d}}{\bf{\omega}} _o } \le 1
\end{equation}
BRDF的能量守恆性可以用來鑒別給定的BRDF函數是否合理,同時也可以給未歸一化的BRDF進行歸一化操作。下面我們就來簡單證明一下上述的能量守恆性。

證明:假設有一束輻照度$E_i \left( {x,{\bf{\omega}} _i } \right)$
的光線,沿${\bf{\omega}}_i$方向入射並擊中物體表面$x$點處。設$x$點處朝物體表面外的半球面區域為$\Omega_x$,由能量守恆定律,在排除該物體表面為光源的前提下,沿半球面$\Omega_x$向外輻射的所有輻射度之和應小於等於入射光的輻照度。即滿足
\begin{equation*}
\label{eq:energy_conservation}
\int\limits_{\Omega _x } {{\rm{d}}\left[ {E_o \left( {x,{\bf{\omega}} _o } \right)\left| {_{{\bf{\omega}} _i } } \right.} \right]} \le E_i \left( {x,{\bf{\omega}} _i } \right)
\end{equation*}
上式中的$E_o \left( {x,{\bf{\omega}} _o } \right)\left| {_{{\bf{\omega}} _i } } \right.$是特指沿方向${\bf{\omega}}_i$入射的光線所造成的輻射度貢獻。
由式(\ref{eq:elrelation})可得
\begin{equation*}
\int\limits_{\Omega _x } {\left[ {L_o \left( {x,{\bf{\omega}} _o } \right)\left| {_{{\bf{\omega}} _i } } \right.} \right]{\rm{cos}}\theta _{\rm{o}} {\rm{d}}{\bf{\omega}} _o } \le E_i \left( {x,{\bf{\omega}} _i } \right)
\end{equation*}
根據式(\ref{eq:brdfdef}),又有
\begin{equation*}
\int\limits_{\Omega _x } {\left[ {f_r \left( {x,{\bf{\omega}} _i ,{\bf{\omega}} _o } \right)E_i \left( {x,{\bf{\omega}} _i } \right)} \right]{\rm{cos}}\theta _o {\rm{d}}{\bf{\omega}} _o } \le E_i \left( {x,{\bf{\omega}} _i } \right)
\end{equation*}

$$
\int\limits_{\Omega _x } {f_r \left( {x,{\bf{\omega}} _i ,{\bf{\omega}} _o } \right)\cos \theta _o {\rm{d}}{\bf{\omega}} _o } \le 1
$$
對於$\forall {\bf{\omega}}_i$均成立。

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM