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 :

transparence généralisée ?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut transparence généralisée ?
    Bonjour,

    Je travaille sur un projet dans lequel je souhaite afficher des polyèdres semi-transparents, de façon à voir les faces intérieures du polyèdre (et notamment les arêtes). Je souhaite également pouvoir me déplacer dans la scène.
    Mon problème, c'est que je ne vois pas comment afficher les faces de mon polyèdre de la plus lointaine à la plus proche, si je veux pouvoir changer mon angle de vue.

    Existe-t-il un moyen pour avoir de la transparence sur toutes les faces de mon polyèdre ? (en gros, lorsque je me place derrière mon polyèdre, je veux voir des faces transparentes)


    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    pour illustrer, je voudrais éviter ce genre de rendu (avec la face en haut à droite qui masque une partie des autres faces car affichée plus tardivement) :


  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
    tu as 2 solutions :
    - soit tu crées des faces extérieures et des faces intérieures, tu t'arranges pour les trier dans l'objet de manière à ne pas avoir à le faire à chaque affichage
    c'est la méthode la plus compliqué ne serai-ce qu'à comprendre mais la moins pénalisante en terme de performances
    - soit tu tries tes faces avant chaque affichage et tu les affiches sans culling de la plus lointaine à la plus proche
    c'est une méthode rapide et efficace lorsqu'il n'y a pas beaucoup de faces et surtout facile à mettre en place
    pour trier les faces, on calcule les coordonnées du "centre" de chacune d'entre elles et on trie sur la coordonnée de profondeur
    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 confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    merci pour ta réponse, je me permet quand même de te demander des précisions :

    sur la 1e solution que tu proposes : en quoi consiste le tri à faire entre les faces intérieures et extérieures ? Et la transparence, on l'affecte de la même manière à toutes les faces ?
    et sur la 2e solution : il suffit juste de récupérer la position de la caméra, ce qui correspondrait dans mon cas aux paramètres de gluLookAt ? Ou ya-t-il une méthode permettant de calculer les coordonnées des sommets des faces relativement à la position de la caméra ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    j'ai trouvé une astuce de fourbe pour contourner mon problème :
    afficher en amont de mon polyèdre, un polyèdre en fil de fer (donc juste les arêtes) ! Le polyèdre reste semi-transparent (alpha = 0.5), les fils de fer sont "opaques", les deux sont de la même couleur (blanc, mais avec des réactions différentes à la lumière)... L'illusion est assez bluffante !



    C'est sûrement pas la solution du siècle mais pour le projet sur lequel je travaille, je pense que ça suffit...

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

Discussions similaires

  1. comment faire un background transparent?
    Par guigui1005 dans le forum Composants
    Réponses: 5
    Dernier message: 17/05/2012, 21h45
  2. [Composant] La transparence
    Par Nuts07 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/05/2003, 14h51
  3. Comment rendre transparent le tour d un icone
    Par NeoRonin dans le forum Composants VCL
    Réponses: 7
    Dernier message: 03/03/2003, 01h40
  4. Réponses: 1
    Dernier message: 23/02/2003, 06h22
  5. ouverture d'une form en fondu transparent
    Par nicholz dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/01/2003, 11h06

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