跳轉到內容

遊戲開發指南/理論/燈光/光線法線

75% developed
來自華夏公益教科書,開放的世界,開放的書籍

為了展示光線應該如何與幾何圖形互動,應該使用一個光線法向量

面法線與頂點法線

[編輯 | 編輯原始碼]
左圖:面法線(a),頂點法線(b)。右圖:頂點法線在角度小於 90° 的形狀上。請注意,影像的幾何形狀看起來像面法線,儘管使用了頂點法線(可能需要更換更直觀的影像)。

面法線(平滑著色/面化/面化)

[編輯 | 編輯原始碼]

在這裡,您可以計算每個面的法向量,並將其直接應用到面的每個頂點上。參見右側左圖中的 **a** 以瞭解說明。面法線更容易計算,它們為幾何圖形提供一種“復古”外觀。

頂點法線(古勞德著色/馮氏著色/平滑著色)

[編輯 | 編輯原始碼]

頂點法線是指,您不僅關注單個幾何圖形,還關注所有連線到它的幾何圖形。為此,您首先需要為每個幾何圖形計算面法線,之後,當有多個幾何圖形共享同一個點時,您需要取平均值,您可以使用以下公式進行操作

,然後對其進行歸一化:

組合成一個數學語句看起來像

注意:雖然從數學上來說,這更好,但從計算上來說,它並不更好。對於計算機使用,請使用第一種方法,它需要額外的臨時變數儲存,但處理器更容易處理。

頂點法線比面法線在計算上更密集,但它們產生的效果更好,更逼真。如果要使用面法線獲得類似的效果,則需要更多多邊形,這在計算上更密集。從第一張影像(**b** 部分)中應該注意的一點是,如果存在像 90° 或更大的尖銳角,那麼最終效果可能更差。因此,對於大於 ∼80° 的角度,它們可能應該使用面法線進行著色。

[編輯 | 編輯原始碼]

Youtube

參考文獻

[編輯 | 編輯原始碼]
華夏公益教科書