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 :

La transparence opengl


Sujet :

OpenGL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Points : 154
    Points
    154
    Par défaut La transparence opengl
    Bonjour,
    J'ai un modèle 3D composé d'un ensemble de surfaces. J'ai deux questions:
    1) Comment rendre une surface transparente 50% pour pouvoir voir les surfaces qui sont derrières?
    2) J'ai deux surfaces situées dans un même plan dont l'une est à l'interieur de l'autre et ayant deux couleurs différentes. Pendant le rendu de la scène, je vois une seule surface (la grande) et la zone d'intersection est un mélange des deux couleurs (ce qu'on appelle le Z fighting). Comment pourrais-je superposer ces deux surfaces dans un même plan et les afficher toutes les deux?
    Merci d'avance.

  2. #2
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    En gros il faut jouer avec le canal alpha, regarde du côté des tuto sur le blending genre chez Nehe : http://nehe.gamedev.net/data/lessons....asp?lesson=08

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 44

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

    je réponds au 2), vu qu'AuraHxC s'est occupé du 1

    => tu peux utiliser glPolygonOffset pour "décaller" légèrement la surface se trouvant dans le même plan que l'autre, c fait spécifiquement pour éviter les problèmes de Z-fighting

  4. #4
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    Effectivement j'avais complètement zappé la seconde question

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Points : 154
    Points
    154
    Par défaut
    Merci à vous deux, je vais me lancer dedans

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Points : 154
    Points
    154
    Par défaut
    Bonjour,
    J'ai essayé d'appliquer le glPolygonOffset sur mes polygones mais j'ai toujours le problème de Z-Fighting.
    J'utilise le code suivant pour dessiner tout polygone de la scène:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    gl.glEnable(GL.GL_POLYGON_OFFSET_FILL);
    gl.glPolygonOffset(polyfactor, polyunits);
        // Dessiner polygone
          gl.glBegin(GL.GL_POLYGONS);
     
          for (int i=ThePolygonPoints.size()-1;i>=0 ;i--)
    	        { 	
    	    	  gl.glVertex3d(getPoint(i).getX()-barycenter.getX(),getPoint(i).getY()-barycenter.getY(),getPoint(i).getZ()-barycenter.getZ());	
    	        }
    	        gl.glEnd();
    gl.glDisable(GL.GL_POLYGON_OFFSET_FILL);
    Je ne sais pas c'est quoi le problème.
    Faut-il faire un glPolygonOffset pour tous les polygones de la scène?

  7. #7
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Re,

    Faut-il faire un glPolygonOffset pour tous les polygones de la scène?
    réponse vite fait avant de partir du boulot

    => Non, dans ton cas:
    1 - dessine la 1ere surface (la grande) normalement
    2- active le polygon offset et dessine la petite (celle qui est "contenue" dans la grande). Et là normalement c'est bon.

    Si ca marche toujours pas je regarderai ton code plus en détails demain.

    bonne chance!

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Points : 154
    Points
    154
    Par défaut
    Merci ShevchenKik pour ta réponse.
    J'ai fait ce que tu m'as demandé, mais ça marche toujours pas.

Discussions similaires

  1. Transparence opengl delphi
    Par Rian83 dans le forum Langage
    Réponses: 9
    Dernier message: 20/02/2009, 19h15
  2. Transparence en OpenGL sans glBlendColor
    Par goast dans le forum OpenGL
    Réponses: 6
    Dernier message: 30/06/2008, 21h25
  3. DevIL + OpenGL : probleme de transparance
    Par raphi93 dans le forum API graphiques
    Réponses: 6
    Dernier message: 30/03/2008, 00h44
  4. opengl et background transparent
    Par venomelektro dans le forum OpenGL
    Réponses: 1
    Dernier message: 06/11/2006, 12h17
  5. Réponses: 5
    Dernier message: 18/03/2005, 20h10

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