IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

glDisable(GL_LIGHTING) pour un plan 2D qui déconne


Sujet :

OpenGL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 55
    Points
    55
    Par défaut glDisable(GL_LIGHTING) pour un plan 2D qui déconne
    C'est un probleme simple mais curieux! J'initialise mon material comme ca :
    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;
    	}
    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!
    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 :

    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);
    }
    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
    void EndOrtho()
    {
    	glPopMatrix();
    	glEnable(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?

    PS : Désolé d'écrire un post aussi long pour si peut de choses...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Non désolé, autant pour moi c t glutSolidSphere que j'avais fais avant, hje ne sais ps trop ce qu'il me charge mais juste en l'enlevant ca fonctionne... Je pense qu'on peut retirer ce post de toute manière . Re désolé!

Discussions similaires

  1. Systéme de zoom pour un plan
    Par Yoshidu62 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/04/2006, 16h42
  2. Quelle API pour detecter un Exe qui s'execute.
    Par caviar dans le forum MFC
    Réponses: 3
    Dernier message: 20/04/2006, 13h26
  3. 1 script, pour animer une image, qui en regroupe 3 scripts
    Par vampyer972 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 09/04/2006, 00h06
  4. Réponses: 3
    Dernier message: 07/03/2006, 22h29
  5. Comment faire pour montrer les procédures qui démarrent ave
    Par zoltix dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/02/2006, 08h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo