畫素級高光效果計算(三)

2021-04-02 05:23:11 字數 839 閱讀 8080

高光衰減貼圖(specular attenuation map)的應用:

specularmap是相對於物體表面而言,反映的是物體表面不同位置的反光程度,而spec衰減圖則是針對物體材質而言,反映了該物體材質的反光能力,比如,陶瓷的高光區域很集中,高光區的亮斑變化急劇;而乙個桌球表面的高光區域則變化比較平緩。

具體演算法是在第3步經過點乘得到反光度後不再執行第4步(詳見畫素級高光效果計算(一)),而是根據該反光度去一張2d高光衰減紋理進行高光取樣,最終將取樣到的高光應用(add)到最終渲染結果上。

這張2d高光衰減貼圖只需要做成512x1等高度為1的尺寸(此處為了表述清晰而將貼圖變成了256*128大小),就可以用來掃瞄整個高光段的變化情況。同時,由於高光衰減只有乙個通道的資料,高光衰減貼圖另外3個通道還可以充分利用來做diffuse漫反射光的衰減變化,以完成其他特效。

高光衰減貼圖在效果產生上及功能上比單純的pow()多次乘方方式強大,甚至可以用於**渲染等特效,以下綜合展示以下sam的應用效果

以下是乙個綜合例子《陶瓷質感的紅色茶壺》

原理很簡單,高光部分採用了高光衰減貼圖,為模擬陶瓷效果,高光區域——>非高光區域的交界線比較清晰,diffuse漫反射部分則用到了diffuse衰減貼圖,可以模擬出陰暗面的反光效果,水壺表面採用了glos**ap( specular map ),以模擬出不同的表面斑紋

canvas畫素級操作實現濾鏡之灰度效果 懷舊濾鏡

灰度化原理 按照.299 r 587 g 114 b來計算,然後將值賦給rgb分量 灰度效果 去色 function gray filter data return data 懷舊濾鏡原理 1.首先對影象重新計算rgb值,計算公式如下 var dr 393 r 769 g 189 b var dg ...

opengl 不同光源下三種反射光的計算

平行光源 如太陽光源,類似於燈源在無窮遠處,照射物體的各個地方光照強度相同,光照方向也相同。點光源 離物體有限距離,且燈光會隨著距離衰減,物體表面光照方向不同。聚光燈 如 手電筒照在乙個圓圈上,周圍衰減。這裡光照計算暫不介紹 vec4 ambientcolor u lightambient u am...

計算機二級c語言(考點總結三錯題集)

pf是乙個指向函式的指標 a.a int x y 當x y,a 0 而要求被除數不能為0 c.只能用於整型資料的運算,y是double d.賦值時左邊必須乙個單獨的變數x y或z等,x y x錯誤 char b 8 表示陣列,b既表示陣列名稱,又表示是陣列首位址,所以不需要 間址符 int c c只...