Bonjour à tous,

Je rencontre quelques difficulté avec glMaterial. D'après La doc, on peut spécifier un glMaterial par vertex:
glMaterial can be called between a call to glBegin and the corresponding call to glEnd
J'ai donc ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDisable(GL_COLOR_MATERIAL);
 
glBegin(GL_TRIANGLES);
 
GLfloat mat_diffuse1[] = { 1.0, 0.0, 0.0, 1.0 };
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse1);
glVertex3f(0, 0, 0);
 
GLfloat mat_diffuse2[] = { 0.0, 1.0, 0.0, 1.0 };
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse2);
glVertex3f(1, 0, 0);
 
GLfloat mat_diffuse3[] = { 0.0, 0.0, 1.0, 1.0 };
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse3);
glVertex3f(1, 1, 0);
 
glEnd();
Et les shader suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
// vertex
void main(){ 
  gl_Position = ftransform(); 
}
 
// fragment
void main(){ 
  gl_FragColor = gl_FrontMaterial.diffuse; 
}
Qui est censé afficher un triangle avec des coins rouges, verts et bleus, mais je n'obtiens qu'un triangle rouge (couleur du 1er vertex). Suis-je un boulet ou est-ce un bug de driver ? J'aimerais avoir vos avis (et même si quelqu'un pouvait tester chez lui ça serait super )

Config: win7, GeForce 285, drivers 285.2

Merci.

Note: Je sais qu'il s'agit de fonctions deprecated/préhitoriques, mais c'est du vieux code et faut bien faire avec...