C'est un probleme simple mais curieux! J'initialise mon material comme ca :
ensuite je fais Material Mat; au début de mon fichier Main.ccp et il me l'initialise dans le constructeur. Le matériel est Ok sur une sphere dans ma vue 3D et réagit bien aux eclairage, il est bien rouge!
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 void Init() { opacity=1.0; ambient[0]=ambient[1]=ambient[2]=0.0; ambient[3]=opacity; specular[0]=specular[1]=specular[2]=0.4; specularBool=0.0; specularPower=0.0; specular[3]=specularBool; emissive[0]=emissive[1]=emissive[2]=0.0; emissive[3]=opacity; diffuse[3]=opacity; diffuse[0]=1.0 diffuse[1]=diffuse[2]=0.0; specularPower=1.0; doubleSide=true; Name="Material"+Affiche::ntos(indice); isTextured=false; }
Mais voila ensuite quand je fais un plan 2D sur un glOrtho2D mon material est rouge foncé à cause de l'éclairage donc je fais ca pour y remedier :
Donc je fais appel a cette fonction avant de dessinner mon plan 2D puis à la fin je fais appel à la fonction EndOrtho() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void BeginOrtho() { glPushMatrix(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0,liste_fen[FenCourante].TailleX,liste_fen[FenCourante].TailleY,0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDisable(GL_LIGHTING); }
Et la c'est le drame! Le plan apparait belu comme si le diffuse était (0.0,0.0,1.0,1.0)!!! Je ne comprend pas du tout pourquoi. Quelqu'un peut il m'éclairer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void EndOrtho() { glPopMatrix(); glEnable(GL_LIGHTING); }
PS : Désolé d'écrire un post aussi long pour si peut de choses...
Partager