本文主要是介绍Lambert,Half Lambert ,Phong ,Blin-Phong,BRDF,BSSRDF的比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Lambert 光照模型(环境光+漫反射)
Idiff = kd * Ia + kd * Il * (N·L) = kd * Ia + kd * Il * dot(N, L)
Ia 是环境光的强度
kd 为材质对环境光的反射系数(0 < kd < 1)
Il 是方向光的强度
kd 为材质对环境光的反射系数(0 < kd < 1)
θ 是入射光方向和顶点法线的夹角。当夹角为 0°,说明入射光平行于法线(垂直于表面),此时反射强度最大;当夹角为 90° 时,说明入射光同表面顶点切线平行,此时物体不会反射任何光线。
N 顶点单位法向量
L 与从顶点指向光源的单位向量
Unity 中的 Lambert 光照模型的源码:
inline fixed4 UnityLambertLight (SurfaceOutput s, UnityLight light)
{
fixed diff = max (0, dot (s.Normal, light.dir));
fixed4 c;
c.rgb = s.Albedo * light.color * diff;
c.a = s.Alpha;
return c;
}
这篇关于Lambert,Half Lambert ,Phong ,Blin-Phong,BRDF,BSSRDF的比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!