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 :

Problème de transparence avec OpenGL


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut Problème de transparence avec OpenGL
    Bonjour,

    C'est pour vous prévenir que OpenGL gére trés mal le alpha ! sinon
    pour ce qui concerne les textures , rien à signaler.
    Idéal pour voir un labyrinthe en 3D avec texture.

    Mais si vous comptez developper un jeux en 3d contenant des vertex avec des textures transparents variante ; ce n'est pas la peine .

    La mauvaise gestion des transparence est du à un mauvais algorithme mais non à un bug.

    Je vous joint deux images ,

    A l'endroit ou l'on voit un cadre noir , eh bien normalement il devrait avoir la texture du précédent en plus avec des cercles rouge bleu en plus ;
    Ce que vous voyez c'est que OpenGL n'a pas tracer le vertex qui est aprés le vertex transparent.

    Je m'explique je trace le vertex traditionnel et aprés je trace un vertex transparent contenant les cercles , BIEN ENTENDU je le trace aprés et non avant.
    Pour info : la texture contenant les cercles sont au format PNG.
    L'image est à l'envers , mais on s'en fiche.


    Sinon c'est trés rapide et les buffers de textures à l'air d'être ok à condition de bien gérer les textures.
    C'est plus simple d'utiliser OpenGL que DirectX ou Direct3D.
    Tester avec OpenGL Mesa et le natif , pareille ;

    Voilà ;

    pour info j'utilise bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
    Images attachées Images attachées     

  2. #2
    screetch
    Invité(e)
    Par défaut
    sans plus d'info je parie quand même plus sur un bug dans ton code que sur un problème dans une bibliothèque utilisée par des milliers de programmes...

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    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 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Dire qu'un algorithme d'OpenGL est faux, c'est un peu énorme vous ne trouvez pas ?
    Alors, je me demande où êtes vous aller chercher quel était l'algorithme utilisé. Enfin, même en disant que vous avez trouvé l'algorithme, si vous pensez que vous en avez un meilleur, pourquoi ne pas le soumettre à nous, puis à tous ?

    Bref, revenons un peu sur Terre. Je dois dire que je n'ai pas très bien compris votre problème de transparence. En regardant les images, je suis à peu près sur que c'est une histoire d'ordre d'affichage. Pour qu'une transparence fonctionne, il faut faire un tri des polygones selon leurs profondeur.
    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.

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut
    J'affiche d'abord le vertex normale (que lui constitue le labyrinthe)puis après le vertex transparent , et ca ne marche pas et je ne comprend pas.

    Pour détailler quand j'affiche le vertex transparent , eh bien le vertex derriére (que lui constitue le labyrinthe) n'est pas afficher.
    J'ai beau essayer de désactiver le DEPTH_TEST et le DEPTH sur le vertex transparent , rien n'y fait ;

    Hier j'ai passer mon après midi à bidouiller OpenGL.

    Ce soir je vais essayer d'afficher d'abord le vertex transparent puis le vertex normal (que lui constitue le labyrinthe).

  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
    Salut,

    pourrais-tu nous fournir un peu de code? On ne va pas ressortir la boule de crystal de Littlewhite tous les 3 posts...)

    Sinon, comme lui et screetch, je doute très fortement que ca soit un bug intrinsèque à OpenGL...

  6. #6
    Membre éprouvé Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Par défaut
    Il serait plus pertinent de publier un extrait de la partie de votre code posant problème, sans ça personne ne parviendra à vous aider

  7. #7
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    J'aimerais aussi savoir si tu as implémenté la même chose en Direct 3D et si tu rencontres le même problème (ou pas, à te lire)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Problème de normales avec OpenGL
    Par ndech dans le forum OpenGL
    Réponses: 13
    Dernier message: 28/04/2010, 11h53
  2. [ImageMagick] Transparence avec imagecopyresampled()
    Par kryogen dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/11/2007, 19h46
  3. Problème de Transparence avec SGE
    Par Clément76 dans le forum SDL
    Réponses: 1
    Dernier message: 28/07/2006, 16h16
  4. Problème de profondeur avec OpenGL et GLUT
    Par brotelle dans le forum GLUT
    Réponses: 3
    Dernier message: 12/03/2006, 14h47
  5. Réponses: 13
    Dernier message: 01/12/2005, 05h34

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