#version 300 es #extension all : warn #pragma STDGL #pragma optimize(on) #pragma debug(on) /* Uniform */ uniform vec3 lightPos; uniform vec4 diffuse; uniform vec4 specular; /* In */ varying vec3 normal; /* Main */ void main () { // Compute dot product of light direction and normal vector float dotProd = max(dot(lightPos, normalize(normal)), 0.0); // Compute diffuse and specular contributions gl_FragColor = diffuse * dotProd + specular * pow(dotProd, 20.0); };