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 :

octree + VBO pour une map


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut octree + VBO pour une map
    Salut

    Je commence l'implémentation d'un moteur graphique utilisant les octree comme méthode de partitionnement. Pour ma map j'ai une heightmap et une texture et pour mes objets des fichiers .obj et .3ds( avec leurs textures eventuellement ). Je souhaite utiliser l'efficacité des vertex arrays voire des VBO pour accelerer le rendu cependant j'ai du mal à me faire une idée de la marche à suivre.

    Pour le moment mon raisonnement est le suivant : Je charge ma map dans un classe map, puis les objets dans des classes objets. Ensuite je passe tous les vertex à la moulinette octree (je me pose d'ailleur une question à savoir si je stocke dans mes noeuds d'octree toutes les données ou simplement des pointeurs vers les données des classes map et objets?). Je finis par une elimination des faces cachées avec un calcul du frustum. J'ai donc dans chaque octree(visible) des vertex venant d'objets et/ou de la map. Ma question est donc : comment savoir quelle texture utiliser pour chaque face puisque tout est mélangé et si on le arrive à le savoir comment passer de texture en texture sans ralentir le rendu?
    De même comment créer des vertex array (ou VBO) efficaces?
    En-effet cela me parait byzarre de créer des buffers pour chaque noeuds de l'octree. De même si j'en crée un avec tout ce qui a survécu au frustum-culling ça voudras dire qu'il sera recalculé à chaque déplacement(est-ce jouable?).

    Je prend sans doute le problème dans le mauvais sens alors pouvez-vous m'éclairer?

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il ne faut pas tout mélanger dans ton octree. Stocke non pas des sommets directement, mais plutôt des pointeurs vers tes objets ; ça n'a aucun sens d'éparpiller la géometrie d'un même objet comme ça (il faut que ça reste consistent au niveau textures / materiaux / shaders / ...).

    Pour le terrain tu peux le découper en patchs et stocker des patchs dans ton octree, par exemple.

    Et ainsi tu n'auras pas à créer ou mettre à jour des VB puisque tu ne manipules dans ton octree que des entités (qui auront leur propre géometrie et sauront d'elles-mêmes comment se dessiner).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut
    Merci pour ta réponse ça ma parrait plus clair ainsi sauf pour le concept des entitées que savent se dessiner d'elles-mêmes. J'ai mes infos sur l'entité mais celles-ci peuvent-être emputées lors des tests de fustum (pour un objet à cheval sur 2 noeuds, dont l'un est hors champs, je n'aurais que la moitiè à dessiner). Alors quand intervient la création du VB? si je le fais avant il y aura 2 fois trops de données stockées et si je le fait après c'est que je le fais à chaque fois(hors tu me dis que ce n'est pas la peine).

    J'ai également une autre question au sujet des textures : y a t'il plus efficace que de charger toutes les textures (glGenTexture(...)) puis les binder?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'ai mes infos sur l'entité mais celles-ci peuvent-être emputées lors des tests de fustum
    Comme je te l'ai dit il faut oublier la gestion au niveau des polygones, gère plutôt au niveau entités. Ca n'a aucun sens de vouloir découper une entité pour éliminer quelques polygones de plus (sauf si ton entité est un niveau entier ou quelque chose de très gros, évidemment).

    J'ai également une autre question au sujet des textures : y a t'il plus efficace que de charger toutes les textures (glGenTexture(...)) puis les binder?
    Au niveau OpenGL non (de toute façon il n'y a pas 50 façons de faire), après il faut voir au niveau de ton appli s'il y a besoin d'un gestionnaire de textures.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut
    ok merci de ta rapidité et de la précision de tes réponses

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/08/2008, 18h36
  2. Probleme avec "find" pour une map
    Par Charlock dans le forum Visual C++
    Réponses: 8
    Dernier message: 22/05/2008, 12h38
  3. Equation pour une map en 3D isometrique?
    Par Zan dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 11/06/2007, 05h09
  4. commentaire pour une map cliquable
    Par Boromus dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/02/2007, 09h51
  5. [Langage][Map] Quel langage pour une map
    Par Aldur dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 23/12/2005, 11h44

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