Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2949 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [OpenGL] problème d'éclairage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[OpenGL] problème d'éclairage

n°992035
Dev48
Posté le 24-02-2005 à 09:12:18  profilanswer
 

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  
 
 
 

mood
Publicité
Posté le 24-02-2005 à 09:12:18  profilanswer
 

n°992042
bjone
Insert booze to continue
Posté le 24-02-2005 à 09:30:51  profilanswer
 

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

n°992043
bjone
Insert booze to continue
Posté le 24-02-2005 à 09:33:46  profilanswer
 

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

n°992129
Dev48
Posté le 24-02-2005 à 10:59:57  profilanswer
 

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

n°992456
bjone
Insert booze to continue
Posté le 24-02-2005 à 14:34:20  profilanswer
 

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.

n°992527
Dev48
Posté le 24-02-2005 à 15:35:11  profilanswer
 

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...

n°992607
bjone
Insert booze to continue
Posté le 24-02-2005 à 16:56:13  profilanswer
 

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

n°992674
Dev48
Posté le 24-02-2005 à 18:16:00  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [OpenGL] problème d'éclairage

 

Sujets relatifs
probleme num de telprobleme de cryptage d'une variable...
Problème sémaphore sous SolarisProblème compilation sur Linux
Problème selection base (débutante que je suis, aidez moi!!)Recherche séquentielle qui pose problème
probleme compatibilité vidéo avec ie, demande d'aide. [JavaScript] Probleme effet sur image - demande aide
Problème pour zipperProblème de syntaxe sur une classe
Plus de sujets relatifs à : [OpenGL] problème d'éclairage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR