swwmgz_m/shaders/glsl/PerfectlyGeneric.fp

21 lines
633 B
GLSL

// perfectly generic cube fake shading
void SetupMaterial( inout Material mat )
{
mat.Base = getTexel(vTexCoord.st);
mat.Normal = ApplyNormalMap(vTexCoord.st);
}
vec4 ProcessLight( Material mat, vec4 color )
{
// temp fix for OBJ bug
vec2 coord = vTexCoord.st;
if ( coord.t < 0 ) coord.t = 1.+coord.t;
vec3 light = vec3(-.6,.7,.8);
float val = max(dot(normalize(vEyeNormal.xyz),light),.25);
val += .2*pow(max(dot(normalize(vEyeNormal.xyz),light),0.),4.);
float mixfct = mix(1.,.5,floor(abs(coord.s-.5)*2.133333));
mixfct = mix(mixfct,.5,floor(abs(coord.t-.5)*2.13333));
val *= mixfct;
return vec4(vec3(val),color.a);
}