Spherical Harmonics 在圖形學中的用處發展的越來越多,只需要計算很少量的係數而在運行時不用處理大量的資料。用Spherical Harmonical可以類比RTGI。一、球面調和函數
球面調和函數Spherical Harmonics SH是定義在球面座標系的一組函數,構成球面上的一組標準正交基,是作用於頻率空間的,通常情況下,SH的定義是在複數域,在做光照計算時主要是用實數域。
球座標:(x,y,z)=(rsincos,rsinsin,rcos)
球面調和函數的定義:
其中-l<= m <=l, l>0, l一般去2-3個Bands 所有一般有l(l+1)項
P是m階l次伴隨勒讓德多項式,伴隨勒讓德多項式的計算通常是由三個規則來計算出來的
K是一個標準化的縮放因子:
根據以上幾個公式可以推算出球諧基係數投影到笛卡爾座標繫上:
索引化:取i = l ( l + 1 ) + m 可有
之所以選擇球諧基函數來還原原始函數,是因為球諧基函數式正交的,有了正交,在進行卷積運算的時候可以得到一個常數0或1, 如果能得到原始函數用基函數表示的對應係數,便可以還原原始函數。
球面S上的任意一個函數f的SH係數為:(運用卷積) 《SH係數公式》
通過這些SH係數可以把原始函數f還原:
我們需要計算SH的係數的那個積分,這裡可以用蒙特卡洛積分來把積分轉換成乘法和加法:
現在把上面求SH係數的積分用球座標表示:
在採用蒙特卡洛積分時,對於一個球體表面,每個點的均勻採樣機率為:
所以《SH係數公式》可以寫成:
現在可以計算n階的近似原始函數f丿,注意要計算出n階的原始函數。需要計算出n*n 個球諧基SH係數,《近視原始Function Compute公式》
二、球諧函數的特性:
球諧函數的旋轉不變性:使用球諧函數時,當情境變化,移動燈光或者旋轉物體,能夠保證light的Intensity不會受到影響。
另外一個是計算兩個球諧函數的乘積的積分時,能夠用其SH係數的乘積之和表示:
以上一、二部分是球諧基函數的理論部分,其中參考了網上的大量資料,當時參考的比較多,放的比較亂就不一一列出,比如PBRT等等。
三、TR-Rendering
球諧光照用新的光照方程來替代通常所說的光照方程,把方程中的資訊使用球諧基函數Projectd到頻域空間中,在渲染的時候可以使用SH係數來對原始光照方程還原渲染情境,
球諧光照是一種把情境中光的分布從時域轉換到頻域的過程,和傅裡葉變換道理是一樣的:
把 environment light irradiance 一個2D的函數L(s),把這個函數project到球座標上,即表示在頻率空間上,其中參數有球諧基函數yi和相應的參數Ci,當給定一個環境映射, 可以離線的預計算Ci,然後在渲染的時候計算上面說的《近視原始Function Compute公式》f丿來渲染情境中物體表面上的點的輻射照度 irradiance。我們使用2階(0,1,2)的球諧基就已經足夠能類比出漫反射輻射照度,因為漫反射輻射照度是一個低頻率的函數,需要3*3=9個SH係數。在計算SH係數時,每一個SH函數分離到3個通道RGB三通道來計算輸出,最後要有27個參數
Irradiance :
其中n是每個點的法向,w是光照方向,L(w)是整個的envirment map.
採樣:
Simle randon sampling(單純隨即採樣)
Systematic sampling(系統採樣)隨即採樣、等距採樣,先將總體的觀察單位按某一順序號分成N個部分,再從第一部分抽取第K號觀察單位,依次使用相等間距,從每一部分各抽取一個觀察單位組成樣本。
Cluster sampling(整群抽樣)總體分群,在隨機抽取幾個群組組成樣本,群內全部調查。
Stratified sampling(分層採樣)先對觀察指標樣本影響比較大的某種特徵,將總體分為若干個類別,再從每一層內隨即抽取一定數量的觀察單位,合起來組成樣本