跳轉至內容

分形/凹凸貼圖

來自華夏公益教科書,開放世界開放書籍

3D 照明模型

[編輯 | 編輯原始碼]

二維分形最簡單的照明效果基於斜率,或者更一般地,基於從DE或平滑迭代或其他方法計算的表面法線。在三維照明中,這對應於漫反射光的一些版本,它只取決於表面法線和入射光源(或光源)的向量。

照明模型通常將環境(光源及其屬性和背景)與表面材料屬性分開,以便它們可以獨立指定。材料屬性包括顏色和紋理,以及它們反射、吸收、透射等漫反射光和鏡面光的程度。一些最簡單的屬性是可見的漫反射光量和鏡面光量。兩種常見的鏡面照明型別是高光(模擬來自某個半徑的光源的反射)和來自背景的反射(理想情況下是完整的 360 度環境貼圖)。在 Frax 中,他們不使用圖片進行反射,而是用一些公式計算一些帶有白光的視窗的近似值來避免所有通常的計算,效果很好。該公式並未公開,環境貼圖更加靈活。

因此漫反射光取決於表面法線和光源方向的點積。鏡面光取決於表面法線、光源方向,還取決於眼睛的向量。對於高光,使用光源向量和一些函式來計算強度,無論您想要使用哪種響應曲線。對於背景反射,計算眼睛射線在表面的反射,並將它投影到環境貼圖。這個數學公式非常標準,您可以在任何地方找到。

對於高光,您通常需要幾個材料屬性。除了高光強度之外,還有亮度(或高光大小,並進行強度調整以在一定程度上保留能量),一些銳度控制(例如,在高斯和具有清晰截止值的圓之間變化)以及金屬度(使高光顏色在表面顏色和光源顏色之間變化)。

在照明模型中,材料屬性決定了來自同一光源的漫反射光和鏡面光效果的混合。這比將一些光澤的光效與不使用相同光源的現有漫反射光效混合在一起更真實。為了獲得良好的高光,您確實需要自由調整每個光源的方向、強度和顏色(至少兩個光源比一個好)。[1]



  • "凹凸貼圖。它允許對以前隱藏在調色盤中緩慢漸變的細微細節進行偽三維視覺化。" Botond Kósa[3]
  • 法線貼圖:"在平面上,細微的浮雕在適當的照明下可以清晰可見。" Arnaud Cheritat[4]
  • unity3d : ParameterNormalMap
  • "斜率渲染最初是一種螢幕空間後期處理效果,使用相鄰畫素平滑迭代計數之間的差異。最近,它可以使用方向距離估計(透過畫素間距歸一化)來代替,我認為 gerrit 證明了在無限精細畫素網格的極限情況下,它等效。" Claude Heiland-Allen

程式碼

[編輯 | 編輯原始碼]

參考文獻

[編輯 | 編輯原始碼]
  1. fractalforums.org : 尋求幫助以學習更多著色方法
  2. /fractalforums.org : 分形中斜率渲染演算法
  3. fractalforums " 凹凸貼圖和改進的直方圖著色 v1.3.10 可用"
  4. A Cheritat wiki : 曼德布羅特集合#法線貼圖效果
  5. 基於物理的陰影
  6. 陰影和照明
華夏公益教科書