簡介:
在計算機圖形學(xué)領(lǐng)域,這技術(shù)被普遍應(yīng)用于生成高質(zhì)量的照片級圖像,在為一個場景計算光照的時候,通過固定管線就可以計算phong光照模型,由于該模型的特征,使得渲染的物體看起來有塑料得感覺,如果要渲染一個有金屬質(zhì)感的且能反射出周圍環(huán)境的物體,phong模型就無能為力了。和固定渲染管線相比,可編程圖形渲染管線的能力要強得多,雖然固定管線里面可以用環(huán)境貼圖來實現(xiàn)物體對環(huán)境的反射效果,但這種環(huán)境只能反射出已經(jīng)保存在cube map的中貼圖,在真實世界中,如果能反射出周圍環(huán)境的物體還有很多其他物體,他們就會互相反射,一般環(huán)境貼圖技術(shù)大達不到這種效果,這就要用到光線追蹤技術(shù)。
光線跟蹤是一種多功能技術(shù),它可以用同一模型來模擬光源和環(huán)境入射光在物體表面產(chǎn)生的鏡面反射和折射、實現(xiàn)場景的消隱及生成陰影等,同時,也可以用作體繪制(volue rendering)的基礎(chǔ).
光線跟蹤算法由于需要跟蹤每一條從視點出發(fā)的光線,因而涉及到大量的光線與景物的求交計算,與傳統(tǒng)的掃描線算法相比,光線跟蹤算法所需的計算量顯得很龐大,所以必須提高光線與景物的求交測試效率,器途徑有兩個:一個是提高光線與景物的求交計算效率,例如光線跟蹤參數(shù)去面片、光線跟蹤代數(shù)去面片、光線跟蹤分維曲面等,這些算法針對具體曲面特點改善了求交的數(shù)學(xué)方法,減少了求交的計算量;另一個途徑是快速確定光線與景物是否有交,這一方法已成為加速光線跟蹤的主流技術(shù),主要有:包圍盒算法和空間剖分算法.
基本算法:
在光線跟蹤系統(tǒng)中,物體空間中一點被取作試點,一個與視點位置適當(dāng)?shù)钠矫婢匦螀^(qū)域被取作投影屏幕,為了簡化計算,常把視點取在Z軸上,并取xoy平面作為投影屏幕,投影屏幕用兩組相互垂直的平行線分成若干個小方格,每個小方格對應(yīng)于屏幕的一個像素,常取小方格中心為取樣點
圖形生成時通過對每個像素分別計算顏色亮度來進行的。首先,從視點出發(fā),引出一條視線穿過取樣點,像物體空間延伸,通過計算求得與它相交的物體。視線可能與多個物體相交,存在多個交點。可以通過比較各個點與視點的距離,求得離視點的最近點。改點稱為在視點方向上相對于視點的可見點。可見點除的法向量必須計算出來,以滿足后面的計算需求。法向量計算出來以后,通過查找表面數(shù)據(jù)表,獲得表面的顏色屬性,反射率,透明性與粗超程度等,就可以可以使用光照模型公式來計算可見點的發(fā)射強度。然后在此計算之前,首先要判斷可見點是否處于陰影中。判斷的方法是從改點想光源引射線,看射線是否與某不透明的物體相交。
如果物體比較光滑,反射性比較強,那么其他物體可以通過可見點反射或者折射到達視點,對于這類表面,我們在求得可見以后,必須沿反射線方向繼續(xù)跟蹤,看看在反射線或者折射線方向上是否有物體存在,,這種射線稱為間接事先,當(dāng)間接視線與物體相交時,確定離可視點最近的交點,稱為間接可視點,它對可見點的光強度可以計算出來,在間接可見點可能又需要從反射或者折射方向跟蹤視線。在這個過程中實際上是一個遞歸過程。所以光線跟蹤本質(zhì)上是一個遞歸算法,每個像素的顏色與光強必須綜合各級遞歸計算的結(jié)果才能獲得
R
aytracing(start_point,view_direction,wright,color){
/*start_point:在第一次調(diào)用表示視點,以后各級遞歸用于表示可見點
view_direction;視線方向,與光傳播方向相反
weight: 當(dāng)前點光強計算結(jié)果的貢獻比例值,當(dāng)它小于閥值Minweight時,將被認為對最終計算結(jié)果影響很小,可忽略不計
color;返回值*/
if(wight<Minweight)
color=blank;
else{
if(無交點)
color=blank;
else{
Io=交點出光照模型值;
計算反射方向R
Raytracing(交點,R,weight * Wr,Ir);
計算折射方向T;
Raytracing(交點,T,weight *Wr,It);
color=Io+Ir+It;
}
}
}
雖然在理想情況下,光線可以在物體之間進行無線的反射與折射,但是實際的算法進行過程中,我們不可能進行無窮的光線跟蹤,給出幾種終止條件:
1>該光線未碰到任何物體
2>該光光線碰到了背景
3>光線在經(jīng)過許多次反射和折射以后,就會產(chǎn)生衰減,光線對于視點的光強的貢獻值很小(小于某個設(shè)定值)
4>光線反射與折射次數(shù)即跟蹤深度大于一定值
光線與物體求交: