[OpenGL] problème d'éclairage

problème d'éclairage [OpenGL] - C++ - Programmation

Marsh Posté le 24-02-2005 à 09:12:18    

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:  

Code :
  1. glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);
  2.    m_Lumiere0.setPosition(0.0f,200.0f,0.0f);
  3.    m_Lumiere0.setDiffusion(0.9f,0.9f,0.9f);
  4.    m_Lumiere1.setNumero(GL_LIGHT1);
  5.    m_Lumiere1.setPosition(-200.0f,200.0f,-200.0f);
  6.    m_Lumiere1.setDiffusion(0.5f,0.5f,0.5f);

 
 
 
Intialisation du viewport:  

Code :
  1. glViewport (0, 0, (GLsizei) w, (GLsizei) h);
  2.    glMatrixMode (GL_PROJECTION);                     //Set up in projection mode  
  3.       glLoadIdentity ();               gluPerspective(45.f,(GLfloat)w/(GLfloat)h,0.01f,100.f);
  4.     glMatrixMode(GL_MODELVIEW);
  5.    glLoadIdentity();


 
 
Dessin  

Code :
  1. glClear (GL_COLOR_BUFFER_BIT |
  2.       GL_DEPTH_BUFFER_BIT);
  3.         glDisable(GL_TEXTURE_2D);
  4.       glLoadIdentity();
  5.      
  6.       //on réduit pour avoir afficher  
  7.       glScalef(0.01,0.01,0.01);
  8. GLfloat couleur2[]={1.0f,0.5f,0.5f};
  9.        //on va faire un cube  
  10.        glPushMatrix();
  11.        glTranslatef(100.,100.,100.);
  12.            
  13.            
  14.            
  15.             glMaterialfv(GL_FRONT,GL_DIFFUSE,couleur2);
  16.             glBegin(GL_TRIANGLES);
  17.                glNormal3f(0.0,1.0,0.0);
  18.                 glVertex3f(-10,10,-10);
  19.                 glVertex3f(10,10,10);
  20.                 glVertex3f(-10,10,10);
  21.                 glVertex3f(-10,10,-10);
  22.                 glVertex3f(10,10,10);
  23.                 glVertex3f(10,10,-10);
  24.              glEnd();
  25.              
  26.              glBegin(GL_TRIANGLES);
  27.             glNormal3f(1.,0.,0.);
  28.                 glVertex3f(-10,-10,-10);
  29.                 glVertex3f(-10,10,10);
  30.                 glVertex3f(-10,10,-10);
  31.                 glVertex3f(-10,10,10);
  32.                 glVertex3f(-10,-10,-10);
  33.                 glVertex3f(-10,-10,10);
  34.              glEnd();
  35.              
  36.              glBegin(GL_TRIANGLES);
  37.             glNormal3f(0.,0.,1.0);
  38.                 glVertex3f(-10,-10,-10);
  39.                 glVertex3f(10,10,-10);
  40.                 glVertex3f(-10,10,-10);
  41.                 glVertex3f(10,10,-10);
  42.                 glVertex3f(-10,-10,-10);
  43.                 glVertex3f(10,-10,-10);
  44.              glEnd();
  45.        glPopMatrix();


 
 
Donc voila mon code.  
 
Si quelqu'un pouvez m'indiquer d'ou vient le problème...  
Je suis preneur de toutes explications  
 
 
 

Reply

Marsh Posté le 24-02-2005 à 09:12:18   

Reply

Marsh Posté le 24-02-2005 à 09:30:51    

qu'est-ce que tu veux dire par 1 ou 2 couleurs ?

Reply

Marsh Posté le 24-02-2005 à 09:33:46    

compare ton code à ça par exemple:
http://raphaello.univ-fcomte.fr/IG [...] terial.htm

Reply

Marsh Posté le 24-02-2005 à 10:59:57    

1 ou 2 couleurs => 1 ou 2 composantes : mon matériau est soit rouge,  soit bleu, soit vert, soit rouge et bleu, soit rouge et vert, soit vert et bleu.
 
Pour le code que tu m'as envoyé, je n'utilise pas aux.
Je vais essayer de faire la même initialisation

Reply

Marsh Posté le 24-02-2005 à 14:34:20    

non, mais c'est pas parceque tu mets une composante à 0 qu'elle n'est pas prise en compte. pour OpenGl ou DirectX une couleur que rouge (ou bleu suivant quoi est où) (1,0,0) ou que vert (0,1,0) ça reste une couleur.

Reply

Marsh Posté le 24-02-2005 à 15:35:11    

lo po compris...
 
Si je met (1.0,0.0,0.5) comme couleur diffuse j'obtiens du rose . Mais si je mets (1.0,0.1,0.5) je devrais obtenir du rose juste un peu plus pale...

Reply

Marsh Posté le 24-02-2005 à 16:56:13    

oui mais c'est toujours une couleur.
 
fin bon bref. sinon t'as trouvé ton problème ?

Reply

Marsh Posté le 24-02-2005 à 18:16:00    

Non toujours pas... :'(
Je déséspère...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed