Cook Torrance光照模型

2021-09-27 10:34:52 字數 1844 閱讀 2311

該光照模型是基於物理材質的光照模型。光照射到物體表面發生漫反射、鏡面反射、折射、透射等現象,在這裡我們只考慮漫反射和鏡面反射,cook-torrance是用來模擬不同材質的鏡面反射效果。

其中:ambient :環境光;

k:決定高光部分和漫射的比例,一般而已,光復合能量守恆定律,即入射光的總能量和出射光的總能量相等;

rs :鏡面發射;

即fresnel,菲涅爾反射。我們在觀察水面的時候,垂直看下去,清澈見底,看遠處的水面,向鏡子一樣,這個就是菲涅爾效應。菲涅爾效應可以說是無處不在,不同的材質效果不同而已。

v:視點的方向;

h:半形向量,即視點和光線的中間向量;

該項模擬物體表面是由無數微小的像鏡子一樣的平面組成,每乙個微平面對於光線會根據自身的方向反射光線,只有那些面向視點的平面貢獻大。具體參見微平面法線分布的理論。

該項用於計算微平面中反射光重合部分的修正。

//使用unity定義的變數:燈光

uniform float4 _lightcolor0;

float

_roughness;

float

_fresnel;

float

_k; samplercube _environment;

struct

vertexoutput

;sampler2d _maintex;

float4 _maintex_st;

fixed4 frag (vertexoutput i) : color

float3 final =_lightcolor0*ln*(_k*diffuse*reflectivecolor*2 + s*(1-_k)*reflectivecolor*2) +unity_lightmodel_ambient.xyz;

return float4(final,1

); }

endcg}}

}

Cook Torrance光照模型

金屬效果 該光照模型是基於物理材質的光照模型。光照射到物體表面發生漫反射 鏡面反射 折射 透射等現象,在這裡我們只考慮漫反射和鏡面反射,cook torrance是用來模擬不同材質的鏡面反射效果。其中 ambient 環境光 k 決定高光部分和漫射的比例,一般而已,光復合能量守恆定律,即入射光的總能...

Unity Shader中實現漫反射光照模型

逐頂點漫反射光照模型。頂點著色器的最基本任務就是把頂點位置從模型位置轉換到裁剪空間中。pos mul unity matrix mvp,pos2 pos為float4型別,pos2為float4型別。其中pos2要獲得模型空間座標 可在定義時 float4 pos2 position 計算漫反射光照...

簡單光照模型(Lambert 光照模型)

環境光是對光照現像的最簡單抽象,因而侷限性很大。它僅能描述光線在空間中無方向並均勻散布時的狀態。很多情況下,入射光是帶有方向的,比如典型的陽光。如果光照射到比較粗糙的物體表面,如粉筆,由於這些表面從各個方向等強度地反射光,因而從各個視角出發,物體表面呈現相同的亮度,所看到的物體表面某點的明暗程度不隨...