你可能認為直接模擬這個過程是個制作圖像的好辦法,你基本上是對的。但,直接模擬有個問題,那就是他繪制圖像所需要的時間,考慮每個光源每秒可能產(chǎn)生數(shù)以兆計(Millions)個光子的情況,其中,每個光子都以略微不同的震動頻率朝著略微不同的方向前進。其中的許多光子撞擊對象你甚至都無法間接看到。其他的正好跑出場景的,比如沖出窗戶的。如果我們想要嘗試去以參照真實追蹤從光源出來的光子的方式來繪制一個圖像,那將會花費數(shù)年的時間來得到那個蠢圖。
本質(zhì)問題不是前向光線追蹤不好,而是從光源來的大部分光子對想要繪制的圖像都沒有幫助。從占用計算資源的角度來說,跟隨無用的光子的代價太過于昂貴了。
對于計算效率的關(guān)鍵理解是反轉(zhuǎn)問題,通過用逆向光線追蹤來代替前向光線追蹤。這開始于我們的反問"哪些光子對繪圖是有貢獻的?",符合條件的光子是那些撞擊了圖像平面并反射進眼睛的那些光子.所有的這些光子在撞擊屏幕前都行進了一段路程;也許有一些直接來自于光源,但是更多的也許在進入眼睛前在周圍反彈。
讓我們考慮一個圖像平面上的特殊點。我們可以輕易地跟著依次撞擊屏幕和眼睛的光子找到路徑:那是一條從屏幕到眼睛的線,如圖6所示。
因此,如果一下光子確實對視距內(nèi)的圖片上的某點有貢獻,那么它就代表一條進入眼睛和膠卷的光線。但是等等,這個光子來自哪里呢?如果我們把光線延伸入世界,我們可以沿著光線的路徑尋找尋找最近的物體,光線必定來自這個物體。
思考圖7,一個光線射入眼睛撞擊球體,穿過圖像平面。那就是光子可能的路徑;即使任何光子穿過了那個路徑,我們也無從得知。但是如果任何光線撞擊了屏幕中的那部分射入眼睛,那么它必須沿著從球到眼睛的這條線行進。因此,我們的新計劃著重討論是否有任何光子通過了那條路。
以這個途徑,我們以從對象到光源的逆向光線追蹤手段來進行光線追蹤。這是種重要規(guī)定,它可以允許我們?nèi)ハ拗莆覀儗τ诠饩€的注意,從而讓我們知道真正對圖片有用的,進入了眼睛的那些光線。
現(xiàn)在,我們找到了吸引我們眼球的光子了。我們必須找出來那些真的通過了那條路徑的光子,及其顏色,我們將會在下面的話題中解決這些問題。
因為正向光線追蹤是如此的昂貴,現(xiàn)今的圖形學(xué)中的光線追蹤大部分都只逆向光線追蹤。很不幸的是一些逆向追蹤的符號產(chǎn)生了一些令人困惑的符號。回想我們逆向追蹤來找出光子的起點,雖然我們經(jīng)常在逆向追蹤中完成這些研究。想象我們乘坐在光子在路徑上行進,尋找我們路徑上的第一個對象;這是光線的起點,因此我們經(jīng)常說的"光線第一個撞擊的對象"或者"路徑上的第一個對象"。即我們通常指的對象就是這樣一個穿過這個光線的光子,這樣一個逆向點在光線追蹤文章和算法中很流行。因此他是用來思考現(xiàn)在的問題再好不過,而且之后也不會迷惑。總結(jié)起來就是"光線撞擊的第一個對象"意味著"某個發(fā)射了這個光線的對象"。
-
光線
+關(guān)注
關(guān)注
0文章
72瀏覽量
10567
原文標(biāo)題:光線追蹤(3)前向光線追蹤和逆向光線追蹤
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論