wfobj-view/f_shader.glsl
2011-05-05 13:07:14 -04:00

32 lines
653 B
GLSL

varying vec3 eye_pos_i;
varying vec3 normal_i;
varying vec4 diffuse_i;
void main(void)
{
vec3 n, lightDir;
vec4 color;
float NdotL, RdotEye;
lightDir = vec3(-0.1, 0, -0.9);
color = vec4(0.2, 0.2, 0.2, 1.0); /* ambient light */
n = normalize(normal_i);
NdotL = max(dot(n, -lightDir), 0.0);
if (NdotL > 0.0)
{
/* diffuse component */
color += diffuse_i * NdotL;
/* specular component */
RdotEye = dot(normalize(eye_pos_i), normalize(reflect(-lightDir, n)));
if (RdotEye > 0.0)
{
color += pow(RdotEye, 96.5);
}
}
gl_FragColor = color;
}