Bonjour.
J'ai un petit souci avec de l'éclairage...
J'esssai d'appliquer un matériau sur un cube( jusque la rien de très palpitant). Si j'applique une couleur diffuse qui ne comprend que 1 ou 2 couleurs (R,v,b, RV,RB,VB), le mélange se fait bien dans n'importe quel sens que je tourne ma scène. Mais dès que j'essaie de mettre un matériau avec les 3 composante j'obtiens du blanc...
Initialisation des lumière:
Intialisation du viewport:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE); m_Lumiere0.setPosition(0.0f,200.0f,0.0f); m_Lumiere0.setDiffusion(0.9f,0.9f,0.9f); m_Lumiere1.setNumero(GL_LIGHT1); m_Lumiere1.setPosition(-200.0f,200.0f,-200.0f); m_Lumiere1.setDiffusion(0.5f,0.5f,0.5f);
Dessin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); //Set up in projection mode glLoadIdentity (); gluPerspective(45.f,(GLfloat)w/(GLfloat)h,0.01f,100.f); glMatrixMode(GL_MODELVIEW); glLoadIdentity();
Donc voila mon 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glDisable(GL_TEXTURE_2D); glLoadIdentity(); //on réduit pour avoir afficher glScalef(0.01,0.01,0.01); GLfloat couleur2[]={1.0f,0.5f,0.5f}; //on va faire un cube glPushMatrix(); glTranslatef(100.,100.,100.); glMaterialfv(GL_FRONT,GL_DIFFUSE,couleur2); glBegin(GL_TRIANGLES); glNormal3f(0.0,1.0,0.0); glVertex3f(-10,10,-10); glVertex3f(10,10,10); glVertex3f(-10,10,10); glVertex3f(-10,10,-10); glVertex3f(10,10,10); glVertex3f(10,10,-10); glEnd(); glBegin(GL_TRIANGLES); glNormal3f(1.,0.,0.); glVertex3f(-10,-10,-10); glVertex3f(-10,10,10); glVertex3f(-10,10,-10); glVertex3f(-10,10,10); glVertex3f(-10,-10,-10); glVertex3f(-10,-10,10); glEnd(); glBegin(GL_TRIANGLES); glNormal3f(0.,0.,1.0); glVertex3f(-10,-10,-10); glVertex3f(10,10,-10); glVertex3f(-10,10,-10); glVertex3f(10,10,-10); glVertex3f(-10,-10,-10); glVertex3f(10,-10,-10); glEnd(); glPopMatrix();
Si quelqu'un pouvez m'indiquer d'ou vient le problème...
Je suis preneur de toutes explications
J'essaierai de mettre des images mais la j'ai pas acces à un ftp histoire de les mettre en lign![]()
Partager