光線追蹤
電子信息學術語
.一個光線跟蹤程序數學地確定和複製從一幅圖像的光線的路線,但是方向相反(從眼睛返回原點).光線跟蹤現在被廣泛用於計算機遊戲和動畫,電視和DVD製作,電影產品中。許多廠商提供用於個人電腦的光線跟蹤程序。在光線跟蹤中,每一個光線的路徑由多重直線組成,幾乎總是包含從原點到場景的反射,折射和陰影效應。在動畫中,每一束光線的直線部分的位置和方向總是在不斷變化,因此每一條光線都要用一個數學方程式來表示,定義光線的空間路徑為時間的函數。根據光線在到達屏幕前經過的場景中的目標的色素或顏色來分配給每一束光線一種顏色。屏幕上的每一個像素符合每一時刻可以回溯到源頭的的每條光線。光線跟蹤最先是由一個叫數學應用組的組織中的科學家在20世紀60年代發明的。這些科學家中的一些人變得對光線跟蹤作為一種藝術感興趣,成為繪畫藝術家,並建立了一個動畫攝影工作室,使用光線跟蹤為電視和電影製作3D電腦肖像和動畫.
微軟新一代Windows Vista操作系統的發布,標誌著電腦遊戲也將步入DirectX 10時代,微軟在這一代遊戲介面中添加了很多更複雜、也更真實的3D效果。光線追蹤(Ray Tracing)就是其中重要的新技術。
光線追蹤是一種“來自幾何光學的通用技術,它通過追蹤與光學表面發生交互作用的光線,得到光線經過路徑的模型”。這個定義聽起來有些晦澀,我們不妨說簡單一點:首先假設屏幕內的世界是真實的,顯示器只是一個完全透明的框框,那麼屏幕內世界里應該有哪些光線會透過屏幕投入人的眼睛呢?光線追蹤技術正是為了解決這個問題,以確保3D畫面看起來更真實。
中學物理中就曾講過光學知識,當光線透射到物體表面時,通常會同時發生3件事,那就是光被吸收、反射和折射。特別是當光被折射到不同方向時,光譜就會發生變化。無論怎樣,光線總會經過一系列的衰減最後進入人的眼睛,光線追蹤就是要計算出光線發出后經過一系列衰減再進入人眼時的情況,特別是對第一人稱的遊戲來說,這種技術非常有助於提高遊戲場景的真實感。其實,這種技術並不是在DirectX 10時代才誕生的,它被提出、被研究已經超過30年了。近些年來也常被應用於電影3D特效中。不過應用於電腦遊戲中,還是從DirectX 10開始的。
圖1 光線追蹤技術原理圖。光線從人眼方向射出,透射在綠色球體表面,通
圖1
光線追蹤技術的利與弊
現在遊戲基本都沒有應用光源追蹤技術,光線都是由你能看到的亮光的物體自身發出的,電腦也不會計算每個光源從哪裡來,到哪裡去,更不會計算這些光源的相互疊加。只是通過及時演算物體陰影和控制光線的強弱來“模擬”人眼看到的真實情況。儘管現在很多採用了HDR(高動態範圍)效果的遊戲都有很不錯的光影效果,但是那遠非真實的光影效果。你很難通過影子和光線的遮蔽來判斷,移動的目標(比如射擊遊戲中的敵人)所處的位置。
我們來看一個實例,
如圖2 為遊戲《孤島驚魂》的截圖,海面上的倒影顯然沒有採用光線跟蹤技術,且不說山體在海中倒影的形狀和面積是否合理,單就海中沒有椰子樹倒影這一點就很不真實。實際上,在遊戲中使用的光源越多,畫面在越貌似華麗的同時,破綻也會越多,唯一的解決辦法就 是採用光源跟蹤技術。
既然光線追蹤技術能夠營造出更真實的光影效果,而且大大超越人們靠想像模擬出的效果,那麼為什麼這麼多年來,它都沒有被運用在3D遊戲中呢?原因很簡單,使用光線追蹤技術的運算量異常龐大,這麼多年來的歷代顯卡都無法勝任這項工作。
而且,現在的光源追蹤技術也遠非完美。計算出正確的反射和折射角度也不代表就能達到完全真實的視覺效果,因為光有顏色,不同顏色的光還會疊加等等,這些額外的計算也需要很好地演演算法和大量的計算。
圖3:遊戲開發人員試著在《雷神之錘Ⅲ》中加入了光線追蹤效果,懸浮的獎勵道具在牆上的投影就是通過光學追蹤計算出來的,使得光源的真實感大大提高。
目前,光學追蹤技術在3D遊戲中的應用尚屬初級階段,DirectX 10為這種技術的發揮提供了良好的基礎,再加上新一代高性能顯卡的推出,相信在不久的將來就會有更真實的光影效果呈現在您眼前。