镜面反射

Posted 胡韬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了镜面反射相关的知识,希望对你有一定的参考价值。

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分别是材质和光源的镜面反射系数,用来宏观调制镜面反射的颜色。

以上是关于镜面反射的主要内容,如果未能解决你的问题,请参考以下文章

UnityShader镜面反射计算与反射光向量推导

此像素着色器中的漫反射和镜面反射

镜面反射

一步步学Metal图形引擎7-《镜面反射》

一步步学Metal图形引擎7-《镜面反射》

OpenGL 光照变化:环境到漫反射或镜面反射有效,但不是相反