Bonjour à tous,
Je rencontre quelques difficulté avec glMaterial. D'après La doc, on peut spécifier un glMaterial par vertex:
J'ai donc ce code:glMaterial can be called between a call to glBegin and the corresponding call to 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
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();
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
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; })
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...
Partager