]> git.tdb.fi Git - libs/gl.git/blobdiff - shaderlib/phong.glsl
Redesign Light to only have a single color
[libs/gl.git] / shaderlib / phong.glsl
index 482f895b44e3e80e50e92586a5c2144319b110c7..6b6de6ff17b3416219833202cfa9f626d384d5a5 100644 (file)
@@ -85,10 +85,8 @@ vec3 phong_one_light(vec3 light, vec3 normal, vec3 look, vec3 light_color, vec3
        vec3 color = light_color*surface_diffuse*diffuse_intensity;
        if(use_specular)
        {
-               /* The light vector points towards the light, so reflected will point
-               towards the surface - but so does the look vector. */
-               vec3 reflected = reflect(light, normal);
-               float specular_intensity = pow(max(dot(reflected, look), 0.0), shininess);
+               vec3 reflected = reflect(look, normal);
+               float specular_intensity = pow(max(dot(reflected, light), 0.0), shininess);
                color += light_color*surface_specular*specular_intensity;
        }
        return color;
@@ -104,7 +102,7 @@ vec3 phong_lighting(vec3 normal, vec3 look, vec3 surface_diffuse, vec3 surface_s
 
        vec3 color = phong_ambient(surface_diffuse);
        float shadow = get_shadow_factor(0);
-       color += phong_one_light(light, normal, look, light_sources[0].diffuse.rgb, surface_diffuse, surface_specular, shininess)*shadow;
+       color += phong_one_light(light, normal, look, light_sources[0].color, surface_diffuse, surface_specular, shininess)*shadow;
 
        if(use_emission)
                color += get_emission_color();