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 :

OpenGL problème avec transparence


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut OpenGL problème avec transparence
    Bonjour,

    voilà je réalise un rendu d'image 3D. Mes images n'ont pas des tailles qui font pile un puissance de 2 (ex : 64*512*256)... par exemple j'en ai une qui fait 63*296*256 donc je complète par du transparent. Dans le code largeurPuiss2 vaut 512 car ma largeur réelle est de 296... je complète le reste (297 -> 512) avec des pixel ayant un alpha de 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,largeurPuiss2,profondeurPuiss2,0,GL_RGBA,GL_UNSIGNED_BYTE,textureY);	
    		glBegin( GL_QUADS );
    		glTexCoord2f(0.0f,0.0f);glVertex3f(-halfImage,iY-halfImage,-halfImage);
    		glTexCoord2f(1.0f,0.0f);glVertex3f(+halfImage,iY-halfImage,-halfImage);
    		glTexCoord2f(1.0f,1.0f);glVertex3f(+halfImage,iY-halfImage,+halfImage);
    		glTexCoord2f(0.0f,1.0f);glVertex3f(-halfImage,iY-halfImage,+halfImage);
    		glEnd();
    J'ai un problème d'affichage : je dessine d'abord ma coupe X puis Y puis Z, j'arrive à voir X et Y à travers le transparent de Z. Mais je n'arrive qu'à voir X à travers le transparent de Y (quand ma coupe Y passe au dessus de Z, le "transparent" recouvre Z)... et je ne voit aucune coupe à travers le transparent de X !
    comme si X serait prioritaire à Y et Z. et Y prioritaire à Z...

    comment puis-je faire pour que le transparent soit vraiment transparent à tout moment?

    désolé si je ne suis pas clair mais c'est assez difficile de décrire

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 136
    Billets dans le blog
    150
    Par défaut
    Une capture d'écran ( avec des explications dessus ) , car j'avoue mais j'ai pas tout saisi :s
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Si j'ai bien saisi ce que tu cherches à faire, je pense que ce chapitre des GPU Gems pourrait t'être utile.

  4. #4
    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
    as tu activé la transparence (blending) avec glEnable(GL_BLEND) ?
    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.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Bonjour,

    je met une image (c'est assez moche désolé mais normalement ca se comprend avec le texte que j'ai mis)... Ici pour qu'on voit mieux j'ai dessiné la coupe Z puis X puis Y. Donc quand je passe Z devant X, le transparent de Z masque ma coupe X....

    au niveau de glEnable(GL_BLEND); il suffit de le mettre avant que je dessine je suppose? Là je l'ai mis avant d'appeler mes glVertex3f mais rien ne change
    Images attachées Images attachées  

  6. #6
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par Elstak Voir le message
    au niveau de glEnable(GL_BLEND); il suffit de le mettre avant que je dessine je suppose? Là je l'ai mis avant d'appeler mes glVertex3f mais rien ne change
    En dehors de glBegin() tout de même ?

Discussions similaires

  1. Problème de transparence avec OpenGL
    Par yann458 dans le forum OpenGL
    Réponses: 15
    Dernier message: 16/12/2011, 08h43
  2. Opengl - Problème avec les arrêtes
    Par Sawyer4 dans le forum OpenGL
    Réponses: 4
    Dernier message: 20/08/2010, 16h28
  3. [OpenGl] problème avec SDL_AddTimer
    Par Angelsafrania dans le forum SDL
    Réponses: 2
    Dernier message: 20/08/2007, 20h44
  4. [OpenGL] Problème avec glGetString
    Par djo.mos dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 17/06/2005, 11h12
  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