所謂光線追蹤(raytrace)是以模擬真實(shí)世界中光的某些物理性質(zhì)為最終目的的。在現(xiàn)實(shí)中,無限無數(shù)細(xì)的光線從各種光源向所有方向放射。數(shù)百萬的光線投射到物體的表面與其碰撞然后經(jīng)過反彈或穿透最終遇到攝像機(jī)而結(jié)束。由于數(shù)百萬的光線的投射方向并不是全部到達(dá)攝像機(jī),這樣一來,計(jì)算的次數(shù)將會(huì)特別高。
由于我們只關(guān)心實(shí)際撞擊屏幕的光線,所以在MAX 里是從攝像機(jī)開始工作,最終到達(dá)光源的計(jì)算方式,并且在此過程中只分辨確定像素的光線。這種方式實(shí)際上是一種反向光線追蹤(backward raytracing)。
反向光線追蹤步驟:
camera的膠片被分成離散的網(wǎng)格(即像素點(diǎn)),我們的目標(biāo)是確定每一個(gè)像素點(diǎn)的顏色值。
對于每一個(gè)像素,從camera位置追蹤一條光線,指向該像素點(diǎn)
對于這束光線,判斷其是否和場景中的物體相交。如果相交,則轉(zhuǎn)到步驟4;否則,將背景色填充到當(dāng)前像素中去,回到步驟2,繼續(xù)處理下一個(gè)像素。
如果光線和物體相交,計(jì)算物體表面交點(diǎn)的顏色值。該點(diǎn)的顏色值即為該像素的顏色值。
a、首先檢查每個(gè)光源在該交點(diǎn)的貢獻(xiàn)值。追蹤一條新光線去光源,用來確定交點(diǎn)是被全部照亮、部分照亮還是沒有被照亮,同時(shí)確定了陰影。
b、如果物體表面具有反射性質(zhì),計(jì)算初始光線的反射光線,然后追蹤這條反射光線,轉(zhuǎn)到步驟3。
c、如果物體表面具有折射性質(zhì),計(jì)算初始光線的折射光線,然后追蹤這條折射光線,轉(zhuǎn)到步驟3。
d、最終,根據(jù)表面性質(zhì)(反射率、折射率),和不同類型光線計(jì)算得出的顏色值,來確定交點(diǎn)的顏色值,即當(dāng)前像素點(diǎn)的顏色值。
回到步驟2,繼續(xù)下一個(gè)像素點(diǎn)。重復(fù)這個(gè)過程直到像素點(diǎn)都遍歷完成。
-
光源
+關(guān)注
關(guān)注
3文章
703瀏覽量
67766 -
光線追蹤
+關(guān)注
關(guān)注
0文章
183瀏覽量
21473
原文標(biāo)題:反向光線追蹤的步驟是怎樣的?
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論