菜雞的ShaderForge1:Blinn-Phong模型

(1)漫反射
漫反射是是投射在粗糙表面上的光向各個方向反射的現象,根據入射光線與此點的法線來決定此點的反射強度。
漫反射模型用法線與光線夾角模擬漫反射效果
以:
                       I1=dot(N,L)=|N||L|cosθ=cosθ
模擬夾角越大漫反射的光強越小的效果
再以反射光與Textrue的RGB相乘得到材質漫反射的模擬光效

暗面加亮
在實際使用中,爲避免RGB趨於0(黑色)的物體背面和少光照面呈現過暗的顏色
常使用Remap將cosθ重分佈於(0.2~0.5,1)的區間
未添加NormalMap的漫反射模型:

添加了NormalMap的漫反射模型:

(2)高光
高光是鏡面反射產生的物體最亮部分 在shader中,高光模型不僅僅用於模擬高光部分,而是模擬整個物體的鏡面反射。
高光(Blinn-Phong)模型
Blinn-Phong模型是對Phong模型的改進模型
(Blinn-Phong)以:
                                                               Ibp = Ks*Il*dot(N,H)^n
模擬鏡面反射
H是光入射方向L和視點方向V的中間向量
Ks表示材質的鏡面反射係數,n指高光指數,I1即爲漫反射光強
可用slider留出拉桿控制Ks和n 製造出Smooth值不同的Material
添加了高光的模型:


高光補正貼圖
在實際使用中添加高光補正貼圖對貼圖紋理的凹陷部分進行高光補正
實際材料的縫隙/凹陷處顯然不可能有鏡面反射
而Blinn-Phong公式會在凹陷處得出一定的鏡面反射光強
所以用去色的Textrue作高光補正貼圖
先將Textrue去色 再用Lerp對去色圖片做值域拉伸(0,1)→(-x,y)(x,y爲較大的值)
再用clamp函數將其重分佈回(0,1)(小於0部分(凹陷)均置0)
再與Ibp相乘得到優化後的結果

得到高光補正貼圖:

相乘處理:
補正後的材質:

顯然在凹陷處沒有了高光,材質看起來更加真實了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章