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 - Masque sur Display List


Sujet :

OpenGL

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Par défaut OpenGL - Masque sur Display List
    Bien le bonjour à tous,

    Je développe actuellement une application permettant d'afficher des symboles DXF. Ces derniers pouvant apparaître plusieurs fois dans la scène, je les place dans des display list.

    Dans certains cas, j'ai besoin de n'afficher qu'une portion du symbole. Aussi je souhaitais savoir si vous connaissiez des méthodes pour faire cela.

    J'ai essayé avec glScissor, mais cela ne semble pas affecter les Display List.

    Je vous remercie d'avance pour vos propositions.

    Cordialement,

    OtO

  2. #2
    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
    Euh, es-tu forcé d'utiliser les Display List ? Parce que c'est déprécié depuis pas mal de temps. Je te conseille d'utiliser les Vertex Buffer Object, qui te permettront aussi de faire ce que tu veux, si je ne me trompe (glDrawRangeElements ?).
    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).

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Par défaut
    Bonjour DragonJoker59,

    Merci pour ta réponse.

    Je regarde de ce pas ces VBO pour voir comment je peux les intégrer.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Par défaut
    Je viens de glaner des informations sur quelques sites à propos des VBO et je ne suis pas convaincu qu'ils soient très adaptés à ce que je souhaite faire.

    Tout d'abord, les symboles que je charge sont constitués d'un grand nombre d'entités différentes (lignes non contiguës, triangles ...). De fait, outre le gain de performance lors de l'affichage de plusieurs exemplaire du symbole, les display list me permettent de gérer l'ensemble des constituants du symbole via un seul ID. De plus, une fois la display list créée, je n'ai plus à me soucier du type des éléments à tracer. Ce qui ne semble pas être le cas avec les VBO, la commande Draw prenant en paramètre le type de primitive OGL à réaliser à partir du tableau de vertex.

    Enfin, lorsque je dois masquer une partie du symbole, ce n'est pas juste définir quelles entités tracer parmi celles constituant le symbole, mais bien effectuer un recadrage.

    Mais je garde les VBO de coté pour d'autres utilisations

  5. #5
    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
    Tu souhaites donc afficher une portion quelconque de ton objet, et pour cela, je reste convaincu que les VBO sont une solution plus adaptée que les display lists.
    Tout d'abord le fait d'avoir des types de primitives différentes à dessiner n'est pas une limitation valide, tu peux envisager de créer un VBO par type de primitive et dessiner ces VBO.
    Pour le dessin d'une portion de tes géométries, il faut, je pense, d'abord trier tes vertex de façon à ce que tu puisses demander le dessin du vertex X au vertex X + N et que ça te fasse une portion.
    Sinon, tu peux envisager de jouer avec glFrustum en lui donnant des valeurs pour zNear et zFar qui permettraient l'affichage de la portion qui t'intéresse. c'est une méthode indépendante de la méthode d'affichage (vbo ou display list) mais qui ne te donnera qu'un résultat approximatif.
    Si tu veux absolument le faire avec les display list, il te faudra gérer une liste supplémentaire dans laquelle tu placerais le code d'affichage des vertex constituant ta portion de géométrie, et évidemment régénérer cette liste à chaque changement de portion. Il y a peut être une autre méthode, mais je ne maîtrise pas assez les display lists pour t'aiguiller plus dans cette direction.
    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).

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 219
    Par défaut
    Hello otofraise

    Sans vouloir te méprendre, je tien à te précisé que les displays listes sont vraiment très très hasbeen, et même sur certain pilots de carte graphique très récente, elle ne sont plus pris en charge, donc ton application ne pourra pas faire de rendu de tes objets tout simplement. Donc l'utilisation de VBO est très très conseillé (pour ne pas dire obligatoire).

    les display list me permettent de gérer l'ensemble des constituants du symbole via un seul ID.
    Rien ne t'empêche de dédié une fonction à cela en faisant un rendu par VBO.

    Tout d'abord, les symboles que je charge sont constitués d'un grand nombre d'entités différentes
    Tout ce que tu peut faire avec des Display Liste, peuvent être aussi fait par un VBO ou plusieurs VBO. Il n'y a aucune difficulté.

Discussions similaires

  1. Multitexturing Vertex Array et Display List
    Par Wyatt dans le forum OpenGL
    Réponses: 1
    Dernier message: 04/05/2005, 15h07
  2. Selectionnet tous ou faire un clear sur une liste
    Par Canou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/11/2004, 10h26
  3. Réponses: 2
    Dernier message: 09/10/2004, 11h35
  4. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h53
  5. Réponses: 7
    Dernier message: 17/07/2003, 11h00

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