12-30-2014
Half Lambert通过光照值的计算来让背光部分更加明亮一些。
这个技术最初是在《半条命》游戏中使用的,它可以防止低光部分过暗而看起来一片黑的情况。
要使用Half Lambert我们只需改变一小部分代码:
inline float4 LightingHalfLambert(SurfaceOutput s,fixed3 lightDir,fixed atten){
float difLight = max(0,dot(s.Normal,lightDir));
float halfLambert = difLight*0.5+0.5;
float4 col;
col.rgb = s.Albedo * _LightColor0.rgb * (halfLambert * atten * 2);
col.a = s.Alpha;
return col;
}
下面是漫反射和Half Lambert的视觉区别,可以看到Lambert暗部明显黑,并且颜色没有渐变,显的很平。Half Lambert暗步比较明亮,并且渐变明显。