光線追跡
光線追跡 |
光線跟蹤是一種真實地顯示物體的方法,該方法由Appe在1968年提出。光線跟蹤方法沿着到達視點的光線的反方向跟蹤,經過屏幕上每一個象素,找出與視線相交的物體表面點P0,並繼續跟蹤,找出影響P0點光強的所有光源,從而算出P0點上精確的光線強度,在材質編輯中經常用來表現鏡面效果。光線跟蹤或稱光跡追蹤是計算機圖形學的核心算法之一。在算法中,光線從光源被拋射出來,當他們經過物體表面的時候,對他們應用種種符合物理光學定律的變換。最終,光線進入虛擬的攝像機底片中,圖片被生成出來。
目錄
簡介
光線跟蹤(Ray tracing),又稱為光跡追蹤或光線追跡,來自於幾何光學的一項通用技術,它通過跟蹤與光學表面發生交互作用的光線從而得到光線經過路徑的模型。它用於光學系統設計,如照相機鏡頭、顯微鏡、望遠鏡以及雙目鏡等。這個術語也用於表示三維計算機圖形學中的特殊渲染算法,跟蹤從眼睛發出的光線而不是光源發出的光線,通過這樣一項技術生成編排好的場景的數學模型顯現出來。這樣得到的結果類似於光線投射與掃描線渲染方法的結果,但是這種方法有更好的光學效果,例如對於反射與折射有更準確的模擬效果,並且效率非常高,所以當追求這樣高質量結果時候經常使用這種方法。在物理學中,光線追跡可以用來計算光束在介質中傳播的情況。在介質中傳播時,光束可能會被介質吸收,改變傳播方向或者射出介質表面等。我們通過計算理想化的窄光束(光線)通過介質中的情形來解決這種複雜的情況。在實際應用中,可以將各種電磁波或者微小粒子看成理想化的窄波束(即光線),基於這種假設,人們利用光線追跡來計算光線在介質中傳播的情況。光線追跡方法首先計算一條光線在被介質吸收,或者改變方向前,光線在介質中傳播的距離,方向以及到達的新位置,然後從這個新的位置產生出一條新的光線,使用同樣的處理方法,最終計算出一個完整的光線在介質中傳播的路徑。
評價
在自然界中,光源發出的光線向前傳播,最後到達一個妨礙它繼續傳播的物體表面,我們可以將「光線」看作在同樣的路徑傳輸的光子流,在完全真空中,這條光線將是一條直線。但是在現實中,在光路上會受到三個因素的影響:吸收、反射與折射。物體表面可能在一個或者多個方向反射全部或者部分光線,它也可能吸收部分光線,使得反射或者折射的光線強度減弱。如果物體表面是透明的或者半透明的,那麼它就會將一部分光線按照不同的方向折射到物體內部,同時吸收部分或者全部光譜或者改變光線的顏色。吸收、反射以及折射的光線都來自於入射光線,而不會超出入射光線的強度。例如,一個物體表面不可能反射66% 的輸入光線,然後再折射50% 的輸入光線,因為這二者相加將會達到 116%。這樣,反射或者折射的光線可以到達其它的物體表面,同樣,吸收、反射、折射的光線重新根據入射光線進行計算。其中一部分光線通過這樣的途徑傳播到我們的眼睛,我們就能夠看到最終的渲染圖像及場景。[1]