    vec3  VP;             // Vecteur lumière
    float nDotVP;         // Produit scalaire entre VP et la normale
 
-   nDotVP = dot(lightVect, normal);
+   VP = normalize(-lightVect);
+
+   nDotVP = dot(VP, normal);
 
    // Calculer les contributions ambiantes et diffuses
-   Ambient += vec4(Lights[2].Ambient,1.0);
-   Diffuse += vec4(nDotVP, nDotVP, nDotVP, 1.0);
+   Ambient += vec4(Lights[2].Ambient, 1.0);
+   Diffuse += vec4(Lights[2].Diffuse * nDotVP, 1.0);
 }
 
 

    csPosition3 = (csPosition.xyz);
    
    //Vecteurs de la surface vers la lumière
	light0Vect = Lights[0].Position.xyz-csPosition3;
    light1Vect = Lights[1].Position.xyz-csPosition3;
	light2Vect = Lights[2].Position.xyz;

    //Normale en référentiel caméra:

   vec3  VP;           // Vecteur lumière

   // Calculer vecteur lumière
   VP = normalize(lightVect);

   // Calculer distance à la lumière
   d = length(lightVect);

   // Calculer l'atténuation due à la distance
   attenuation = 1.0 / (Lights[0].Attenuation[0] + Lights[0].Attenuation[1] * d + Lights[0].Attenuation[2] * d*d);
   
   nDotVP = dot(VP, normal);

   // Calculer les contributions ambiantes et diffuses
   Ambient += vec4(Lights[0].Ambient * attenuation, 1.0);
   Diffuse += vec4(Lights[0].Diffuse * nDotVP * attenuation, 1.0);
}


