6 struct DirectionalLight {
7 // direction in view space
13 uniform DirectionalLight global_light = DirectionalLight(
14 vec3(0.57735026918962576451),
22 // TODO: pull from texture (or some other source)
23 const vec3 material_color = vec3(1.0);
25 vec3 normal = normalize(view_normal);
26 float cos_theta = dot(normal, global_light.direction);
27 float cos_alpha = dot(-normalize(view_position), reflect(-global_light.direction, normal));
29 vec3 ambient = global_light.ambient * material_color;
30 vec3 diffuse = global_light.diffuse * material_color * max(0.0, cos_theta);
31 vec3 specular = global_light.specular * pow(max(0.0, cos_alpha), 5);
33 gl_FragColor = vec4(ambient + diffuse + specular, 1.0);