Games101課程筆記_lecture13_光線跟蹤
Ray tracing和光柵化是不同的成像方式
1 why Ray tracing
光柵化不好表現全局的效果。
- 陰影
- 玻璃的反射:光線在場景中彈了兩次
- 間接光照:光線彈射不止一次。
以上這些光柵化不好做這些效果,
光柵化快,但是質量不好。
光線追蹤精確,但是很慢,符合物理規律,很真實
光柵化:實時;光線追蹤:離線
2 光傳播
reciprocity-光線的可逆性,光源發出,也可以從眼睛發出關係。
你可以看到他,他也可以看到你。
從相機出發,往世界上投出光線,進行計算。
3 光線追蹤
假設:
眼睛是一個點;
光源也是一個點;
物體會完美的反射和折射;
沿着一條光線考慮的是最近 的一個交點,完美解決了深度測試的問題。
3 Whitted-style ray Tracing
每個彈射點都與光源相連接。
先看這些點是否沒擋住,每個點的着色都相加起來。有能量損失,要考慮進去。
也就是把所有的光路都遍歷出來,然後計算顏色值,將其累加起來。
4 技術實現
1 光線交點
1 光線的數學表示方法
2 光線與球相交
t不知道。求t
求解t的過程如下,
求解的t必須要有意義。
球與光線的三個關係:
4 光線與隱式表面的交點
用數值的方法求解這個解。
5 關係與顯示錶面的交點
也就是光線與三角形求交。
奇數個交點在內部,偶數個交點在外部。
平面的數學定義
一條法線以及平面上的一個點
平面上的任意一個點可以用一條法線和平面上的任意一個點來表示;
利用平面的一個特性,平面的法線與平面的任意兩個點的連線垂直。
計算方法,如下
可以解出平面與光線的交點,然後再判斷交點是否在三角形的內部。、
懶辦法
有沒有辦法馬上就判斷出交點是否在三角形內部
利用重心座標來求出三角形內的任何一個點,然後和光線上的點做比較,只要相等就是一個點
t還是正的,對於重心座標在三角形內部是否在三角形內就是P0,P1,P2的係數都大於0
2 光線和表面求交的加速
1 問題
1000多萬個三角形,場景很複雜。
2 加速方法
1 包圍盒
2光線如何求包圍盒有交點
三維的盒子與光線的相交
求出三組進入和出去的時間。
iff當前僅當