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 :

[débutant] couleur fonction de l'orientation


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 25
    Par défaut [débutant] couleur fonction de l'orientation
    Bonjour,

    je cherche à attribuer une couleur à des polygones en fonction de leur orientation (GL_CW ou GL_CCW).

    Pour le moment j'ai fait 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    void Draw()
    {
            /*Alpha chanel activate*/
            glEnable(GL_BLEND) ;
            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) ;
            glEnable (GL_COLOR_MATERIAL);
            glDisable(GL_LIGHTING);
     
            glFrontFace(GL_CCW);
            GLfloat Noir[] = {0.0f, 0.0f, 0.0f, 0.25f};
            glColor4fv(Noir);
     
     
                    /*calcul de la normal*/
     
                    /*draw the polygon*/
     
            glFrontFace(GL_CW);
            GLfloat Rouge[] = {1.0f, 0.0f, 0.0f, 0.25f};
            glColor4fv(Rouge);
     
                    /*calcul de la normal*/
     
                    /*draw the polygon*/
     
     
           glDisable (GL_COLOR_MATERIAL);
           glEnable(GL_LIGHTING);
     
     
     
    }
    Pour le moment, je n'ai pas l'impression que j'ai 2 couleur en fonction de l'orientation de mes polygones.

    Comment feriez vous???

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Salut,

    Si tu utilises l'eclairage, tu peux indiquer pour quel matériau utiliser pour quelle face (sans eclairage je ne sais pas là comme ca).

    Remarque: tu actives GL_COLOR_MATERIAL mais tu desactives l'éclairage, alors que justement GL_COLOR_MATERIAL est fait pour assigner des materiaux plus facilement quand la scène est éclairée

    Sinon, assure-toi que le culling est bien désactivé sinon tu ne verras jamais tes polygônes en face arriere.

    Une fois un materiau different selectionné pour la face avant et la face arriere, tu n'as besoin de dessiner ton polygône qu'une seule fois, si le culling est désactivé.

    Essaie un code du genre:
    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
    void Init() // A appeler UNE fois
    {
        /*Alpha chanel activate*/
            glEnable(GL_BLEND) ;
            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) ;
    
            // Activer l'eclairage et le passage de materiaux en utilisant glColor*()
            glEnable(GL_LIGHTING);
            glEnable (GL_COLOR_MATERIAL);
    
            // Specifier le sens des polygônes en face avant
            glFrontFace(GL_CCW);
    
            // desactiver le culling
            glDisable(GL_CULL_FACE);
    }
    
    void Draw()
    {
            glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
          
            GLfloat Noir[] = {0.0f, 0.0f, 0.0f, 0.25f};
            glColor4fv(Noir);
    
      glColorMaterial(GL_BACK, GL_AMBIENT_AND_DIFFUSE);
            GLfloat Rouge[] = {1.0f, 0.0f, 0.0f, 0.25f};
            glColor4fv(Rouge);
     
     
                    /*calcul de la normal*/
     
                    /*draw the polygon - Une seule fois! */
     
      
    }

  3. #3
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    question bête, si tu affiches les polygones devant ET derrière
    les polygones devant vont cacher les polygones derrière non ?
    ou alors c'est pas un objet avec volume mais juste une surface ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  4. #4
    Membre averti
    Inscrit en
    Août 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 25
    Par défaut
    ShevchenKik: quand j'applique ce que tu me dis ca marche comme prévu....mais j'ai le sol de ma scène qui devient bleu turquoise (???) losque je lance la fonction alors qu'il était blanc. Puis il reste bleu turquoise.

    shenron666: merci de te joindre à nous! En fait je cherche à tester les faces d'un shadow-quad que je construit à partir des frontières d'une figure (frontières = limite entre face éclairée et face non-éclairée). Pour débugger, je vérifie l'orientation de mes faces et on m'a inviter à les colorier en fonction de leur orientation

  5. #5
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Je pense que ca vient du blending. Là on l'active une fois pour toute au début, sans le couper par la suite. En as-tu vraiment besoin?

    Si oui essaie de l'activer seulement pour les polygônes concernés et de le couper ensuite

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 25
    Par défaut
    l'activation du blending uniquement là où ca m'interesse ne marche pas.

    Ce qui veux dire que j'ai activé quelque chose quelque part.....et que ca m.....

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

Discussions similaires

  1. [Débutant] couleur en fonction de valeur
    Par m4tl4b dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2008, 08h50
  2. [HTML][Débutante]Couleur de texte variable
    Par master56 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/10/2005, 15h04
  3. [PowerBuilder] [Débutant] Lancer fonction
    Par bejnat dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 04/10/2005, 14h21
  4. [débutante]Couleur - CEdit - OnKillFocus
    Par monia dans le forum MFC
    Réponses: 1
    Dernier message: 11/07/2005, 15h12
  5. [débutant] Couleur surface front et back
    Par esquif dans le forum OpenGL
    Réponses: 1
    Dernier message: 02/06/2005, 14h37

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