1. 程式人生 > >鏡面反射

鏡面反射

一般來說 顏色 調制 點積 ref 需要 lar 反射 平面

specular_color = pow( v_e‘ * v_l, gloss ) * mat_specular * light_specular;

這裏解釋一下:

v_e‘ 是e_v的反射向量(v_e‘ = reflect( e_v, n ) ),

而e_v是眼睛到該點的單位向量,

所謂反射向量,即以與該點的法線所垂直的平面做鏡面反射所得到的向量

v_l是該點到光源的單位向量;

v_e‘ * v_l 是兩者的點積, 同樣要用max(v_e‘ * v_l, 0),負的值也是不需要的;

pow是冪積,點積是底,gloss是指數;

gloss用來調制亮斑的大小,一般來說,gloss越大,光斑越細小,gloss越小,光斑分布越寬泛。

mat_specular,light_specular分別是材質和光源的鏡面反射系數,用來宏觀調制鏡面反射的顏色。

鏡面反射