Raytracing 光線追蹤演算法

2022-07-31 05:39:15 字數 804 閱讀 2436

實際上叫反向光線追蹤(backward raytracing),因為計算是從camera開始發射光線,而不是從光源發射光線。

反向光線追蹤步驟:

1、camera的膠片被分成離散的網格(即畫素點),我們的目標是確定每乙個畫素點的顏色值。

2、對於每乙個畫素,從camera位置追蹤一條光線,指向該畫素點

3、對於這束光線,判斷其是否和場景中的物體相交。如果相交,則轉到步驟4;否則,將背景色填充到當前畫素中去,回到步驟2,繼續處理下乙個畫素。

4、如果光線和物體相交,計算物體表面交點的顏色值。該點的顏色值即為該畫素的顏色值。

a、首先檢查每個光源在該交點的貢獻值。追蹤一條新光線去光源,用來確定交點是被全部照亮、部分照亮還是沒有被照亮,同時確定了陰影。

b、如果物體表面具有反射性質,計算初始光線的反射光線,然後追蹤這條反射光線,轉到步驟3。

c、如果物體表面具有折射性質,計算初始光線的折射光線,然後追蹤這條折射光線,轉到步驟3。

d、最終,根據表面性質(反射率、折射率),和不同型別光線計算得出的顏色值,來確定交點的顏色值,即當前畫素點的顏色值。

5、回到步驟2,繼續下乙個畫素點。重複這個過程直到畫素點都遍歷完成。

光線追蹤(raytracing)

考慮乙個二維平面,攝像機在 0,0 0,0 的位置,初始時平面上沒有障礙物。現在執行qq次操作,操作有兩種 假設這是第ii次操作,1 i q1 i q 1 給定x0,y0,x1,y1 x0 2 給定向量 x,y x,y 會有乙個動點從攝像機所在的 0,0 0,0 位置出發,以 x,y x,y 所指的...

光線追蹤(raytracing)

考慮乙個二維平面,攝像機在 0,0 0,0 的位置,初始時平面上沒有障礙物。現在執行qq次操作,操作有兩種 假設這是第ii次操作,1 i q1 i q 1 給定x0,y0,x1,y1 x0 2 給定向量 x,y x,y 會有乙個動點從攝像機所在的 0,0 0,0 位置出發,以 x,y x,y 所指的...

3994 光線追蹤(raytracing)

考慮乙個二維平面,攝像機在 0,0 0,0 的位置,初始時平面上沒有障礙物。現在執行qq次操作,操作有兩種 假設這是第ii次操作,1 i q1 i q 1 給定x0,y0,x1,y1 x0 2 給定向量 x,y x,y 會有乙個動點從攝像機所在的 0,0 0,0 位置出發,以 x,y x,y 所指的...