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 :

[ JOGL ] Dessiner la lampe dans ma scene


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut [ JOGL ] Dessiner la lampe dans ma scene
    Bonjour,

    Je cherche a afficher dans ma scene, les différentes lampes utilisées.
    J'arrive a dessiner une sphere et ainsi voir le positionnement d'une lampe.
    Je voulais afficher l'objet en jaune, malheureusement cela s'applique a tous les objets de la scene...

    Voici 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
    // Setup The ambient Light
            ambientColorLight.emit(gl, lightNumberGL);
            diffuseColorLight.emit(gl, lightNumberGL);
            specularColorLight.emit(gl, lightNumberGL);
     
            // Setup spot light
            if (isSpot) {
                gl.glLightfv(this.lightNumberGL, GL.GL_SPOT_DIRECTION, spotDirection, 0);
                gl.glLightf(this.lightNumberGL, GL.GL_SPOT_CUTOFF, spotCutoff);
                gl.glLightf(this.lightNumberGL, GL.GL_SPOT_EXPONENT, spotExponent);
            }
     
            // Position The Light
            gl.glLightfv(this.lightNumberGL, GL.GL_POSITION, position, 0);
     
            gl.glEnable(this.lightNumberGL);
     
            if (isShowDebug) {
                // save matrice
                gl.glPushMatrix();
                // gl.glPushAttrib(GL.GL_LIGHTING_BIT);
                // gl.glDisable(GL.GL_LIGHTING);
     
                gl.glColor3d(Color.JAUNE.getR(), Color.JAUNE.getV(), Color.JAUNE.getB());
     
                // Move to the translate coordonates
                gl.glTranslated(position[0], position[1], position[2]);
                // Resize
                gl.glScaled(0.1f, 0.1f, 0.1f);
                glu.gluSphere(glu.gluNewQuadric(), 1.5f, 16, 8);
                // gl.glPopAttrib();
                // restore matrice
                gl.glPopMatrix();
            }
     
            gl.glEnable(GL.GL_DEPTH_TEST);
            gl.glEnable(GL.GL_COLOR_MATERIAL);
    J'ai essayé en vain de jouer avec glPushAttrib... sans succes.

    Merci d'avance de vos aides

  2. #2
    Membre éprouvé Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Par défaut
    Salut,

    La couleur jaune reste actif pour l'ensemble des objets suivant sa déclaration et cela tant que tu n'as pas redéfinit une couleur d'affichage.
    Par défaut quand tu ne déclares aucune couleur c'est la couleur blanche qui est définit.
    Une fois que tu as dessiné ta lumière, ici une sphère, il suffit de remettre la couleur par défaut (blanche) via glColor3f(1.0,1.0,1.0).

    Un petit exemple en pseudo code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     void draw()
    {
     
         glColor3f(1.0f,0.0f,0.0f); //définit la couleur rouge pour les prochains vertex
            Sphere(); //couleur active le rouge
            Cube();     //couleur toujours active le rouge
     
         glColor3f(0.0,1.0f,0.0); //activation de la couleur vert
            Cylindre();
     
         glColor3f(1.0f,1.0f,1.0f); //couleur par défaut le blanc
            Cube();
    }
    Dans l'ordre la fonction Draw affichera une sphère et un cube rouge, puis un cylindre vert et enfin un cube blanc.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    Merci bcp pour l'info

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dessin dynamique dans une Scene
    Par Jk.speed dans le forum JavaFX
    Réponses: 4
    Dernier message: 18/03/2010, 11h04
  2. dessiner des composants superposées dans une scene
    Par bracket dans le forum Débuter
    Réponses: 2
    Dernier message: 10/06/2009, 00h07
  3. [ALGO] dessiner un triangle dans le bon sens
    Par lefait dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 05/02/2005, 14h38
  4. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 11h06
  5. [PaintBox] Persistance du dessin non créé dans onPaint
    Par princesse dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/04/2004, 17h47

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