Bonjour à tous,
Je n'arrive pas a avoir un bon per-pixel lighting. Voici ce que j'ai:
Pour chaques pixels :
- une normale
- une couleur
- Une matrice model-view : M
- une matrice de projection : P

+ la position de la lumière

Dans mon shader programme voici ce que je fait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
light_p_eye_coord = M*light_p;
vec4 p_eye_coord = P*M*p; 
gl_Position = p_eye_coord; 
pixel_normal = M*p_normal;
Dans mon fragment programme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
float value = max(dot(normalize(pixel_normal), normalize(light_p_eye_coord)), 0.0);
gl_FragColor = object_clr * light_clr * value;
Ce code ne me donne pas l'éclairage attendu, et je ne comprend pas pourquoi.
Si quelqu'un a une idée ...

Cordialement