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 :

VBO et Couleurs dupliquées


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut VBO et Couleurs dupliquées
    Bonjour à tous.
    J'ai mis en place mes VBOs (un pour les coordonnées, un pour les indices et un pour les couleurs). Mon modèle est constitué de tétraèdre avec différents matériaux (implique différentes couleurs).
    Mon problème étant le suivant: un point peut être partagé par plusieurs tétraèdres de matériaux différents.
    Ce que je souhaiterais faire c'est d'avoir plusieurs couleurs par points sans pour autant à avoir à les dupliquer ou encore une technique (peut-être un fragment shader) pour afficher mes tétraèdres comme en mode "direct" de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    glBegin(GL_TRIANGLES);
    //premier tétra
    glColor4f(1.0,0.0,0.0,1.0); //Couleur 1
    glVertex3f(0.0,0.0,0.0); // Point 0
    glVertex3f(2.0,0.0,0.0); //Point 1
    glVertex3f(1.0,2.0,0.0); //Point 2
    glVertex3f(1.0,1.0,1.0); // Point 3
     
    //second tétra
    glColor4f(0.0,1.0,0.0,1.0);
    glVertex3f(1.0,1.0,1.0); //Point 3
    glVertex3f(2.0,0.0,0.0); //Point 1
    glVertex3f(1.0,2.0,0.0); //Point 2
    glVertex3f(5.0,5.0,5.0); //Point 4
     
    glEnd();
    Cette figure représente le rendu que j'attends:


    A l'heure actuelle j'ai un fondu de couleurs. J'ai tenté d'utiliser GL_FLAT mais malheureusement ça ne fonctionne pas non plus (certaines faces d'un même tétras sont de couleurs différentes)...

    Si vous avez des idées n'hésitez pas !

    Merci d'avance

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Par défaut
    Je crois que tu peux faire un geometry shader qui va permettre dacceder a une texture 1D en utilisant l'index du triangle courant pour generer les bonnes couleurs... mais je me demande si c'est vraiment pas overkill... et les performances ne seront pas forcement meilleures. Bref a moins que t'aies vraiment des soucis de place memoire... dupliques

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Hélas oui je risque d'avoir des problèmes de mémoires... je dois afficher dans les 10 millions de tétra...
    Merci quand même pour l'idée.

  4. #4
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    je suis de l'avis de TanEk, geometry shader, mais pas que pour mettre la bonne couleur, y construire aussi tes tétraèdres dedans (tu n'enverras plus qu'à la carte graphique la position et l'orientation de tes tétraèdres). et pas d'accès texture, les couleurs en dur dans le shader.

    et si tous tes tétraèdres sont les mêmes, tu pourras même faire de l'instancing.

    par contre tes 10 millions, c'est 10 millions en permanence à l'écran?

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Oui c'est 10 millions de tétraèdres en permanence et malheureusement il ne sont pas tous identiques... C'est pour cela que je voulais éviter la duplication.

    Sinon pour le geometry shader avez-vous des tuto/exemples par je n'en ai jamais fait.
    Merci

  6. #6
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    j'ai trouvé ça : http://cirl.missouri.edu/gpu/glsl_le...der/index.html

    je sais pas ce que ça vaut, je suis plus habitué à directx.

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Merci beaucoup stardeath pour ce lien.
    Je suis entrain d'essayer de faire mon geometry shader maintenant et je vous tiens au courant de la solution que j'ai choisi (dupliqué directement les points ou utiliser le geometry shader).

    Edit:
    J'ai choisi de dupliquer les points (je n'ai pas le temps de faire un geometry shader performant). Mais maintenant autre problème: mon color picking ne sélectionne plus les bonnes cellules...

    Edit 2:
    Autre problème (lié également au picking), les IBOs sont devenus inutiles...

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. VBO & la répétition des couleurs
    Par FerielVision dans le forum OpenGL
    Réponses: 4
    Dernier message: 16/06/2013, 12h31
  3. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  4. Mixage de Couleurs
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 29/05/2002, 13h34
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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