第三章 以頂點階層為基礎的預先計算輻射轉換
3.3 點光源取樣
在前置計算中,為了達到點光源任意移動的目標,我們必須針對所有 點光源可能出現的位置取樣,並對所有樣本光源計算預先計算區域輻射轉 換,最後將其轉換成球諧係數形式以降低資料量。球諧係數本身可以反映
出頂點的顯像方程式特性,在幾何與能見度改變不大的情況下,鄰近的頂 透過在頂點階層的節點中紀錄其法向量錐(normal corn)資料,用來描述該節 點所涵蓋的所有葉節點的法向量指向範圍。如圖 7 所示,nv代表所有法向
圖 7 法向量錐與背光判斷示意圖
陰影的形成起因於頂點與光源連線之間有其他物體或物體本身遮蔽,
陰影外圍的區域因為被光源直接照射,某些角度看起來可能具有相當高的 亮度,與陰影區域形成強烈的對比,亦為極為明顯的特徵。因此陰影之下 的區域可以降低精細度,但是在光暗交界處附近的頂點必須保持高度精細 度,以維持陰影的形狀。我們以頂點光源的連線與場景進行交會的測試,
檢驗頂點與光源之間是否有遮蔽物,假若這條連線與場景中任何一部分有 所交會,那麼這個頂點落在陰影區域之內。在頂點階層中,如果某節點的 兩個子節點都是屬於陰影的節點,我們可以將這兩個子節點摺疊起來,並 根據同樣的原則來降低精細度。
如果一頂點不屬於背向光源與陰影,則其必會被光線照射到。針對此 類頂點,我們透過計算其與臨近頂點之照度差來排序,並決定是否進行簡 化。由於計算照度需要對每個視點進行顯像動作,為了移除視點所造成的 影響,我們利用其幾何特性來逼近照度效果。
在 Phong[Phong75]反射模型中,將物體的顏色分為環繞光項目(ambient term)、散射光項目(diffuse term)、以及鏡射光項目(specular term)。其中決 定物體大部分顏色的散射光項目為:
) (L N kd ⋅
上式的N 是頂點法向量,L是入射光單位向量,兩向量之間的夾角即為入射 角。因此若兩相鄰頂點的入射角相似的時候,我們可以推測這兩個頂點亦 會有類似的散射光項目顏色。我們判斷一邊線是否進行褶疊的方式為計算
nrv
θ
L
其兩端點對點光源之入射角差,當差大於一給定上限時,則此一邊線便不 能褶疊。
圖 8 還原基準檢驗函數
圖 8 為進行光源取樣之模型簡化的完整演算法,我們由頂點階層的底 部開始,針對每個父節點,首先判斷其是否為背向光源或落於陰影內,如 是則直接將其簡化,反之計算其入射角差,根據一給定上限決定是否要簡 化或保留。重複執行此一步驟直到所有節點都無法簡化為止,則可得到所 要之簡化模型。