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 :

gestion des objets d'une scene


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut gestion des objets d'une scene
    Bonjour,
    pour mon moteur, je dois gérer les objets de la scène pour un tas de choses, comme le frustum culling par exemple. Après moultes recherches sur le Net, je n'arrive pas encore à voir/comprendre ce qui est efficace de ce qui ne l'est pas.

    Il est souvent dit qu'un BSP est pratique pour l'affichage "back to front" (économie du Zbuffer) mais que c'est une catastrophe pour les objets dynamiques.

    On dit que les octrees sont plus rapides à construire mais que la gestion des objets dynamiques n'est pas top.

    Mes questions :
    - faut-il le calculer à chaque display ou le mettre à jour mais alors comment ?
    - qu'est-ce que l'on compare : l'objet entier (bounding box) ou polygone après polygone ?

    Merci

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Hello

    Par principe un BSP ou un octree n'est calculé qu'une fois... car ça peut prendre pas mal de temps... l'interet et justement de ne pas avoir à le recalculer par la suite... par contre tu peux toujours le mettre à jour si ta scene est dynamique... mais faut optimiser ton code et tes boucles de parcours...

    pour le classement, tu peux utiliser les BB comme les géométries... à toi de voir... ça dépend de tes données et de tes objectifs...
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut c'est à toi de voir, mais le partionnement de l'espace c'est pas quelque chose de vraiment généraliste

    si tu as une scène normale: beaucoups d'objets statiques / pseudo statiques (bouding box statique) et peu d'objets dynamiques (un FPS par exemple) alors les algo de partionnements s'appliquent très bien, tu peux par exemple
    faire 2 arbres: un (très gros) pour les objets statiques et un autre pour les objets dynamiques, que tu reconstruis à chaque frame mais ce n'est pas grave car il est tout petit

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    Merci pour vos réponses.

    En fait, je n'ai pas de contexte clair pour l'instant (je ne sais pas quel genre de scène j'aurai à gérer) alors j'essaie de classer les solutions selon leurs caractéristiques pour faire un choix.

    Est-il envisageable d'implémenter plusieurs méthodes de partitionnement/gestion de scène puis de faire un choix dynamique selon la scène ?


    Citation Envoyé par Ange_blond Voir le message
    Hello

    pour le classement, tu peux utiliser les BB comme les géométries... à toi de voir... ça dépend de tes données et de tes objectifs...
    BB = Building Blocks et donc implique gestion des objets entiers ?
    géométries implique gestion par face ?

    Merci

  5. #5
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par crischprolch Voir le message

    Est-il envisageable d'implémenter plusieurs méthodes de partitionnement/gestion de scène puis de faire un choix dynamique selon la scène ?
    Heuu tout à fait selon moi... bon ça te fait bosser et coder deux fois plus... mais au moins tu aura qqch d'adapté à ton probleme.


    Citation Envoyé par crischprolch Voir le message
    BB = Building Blocks et donc implique gestion des objets entiers ?
    géométries implique gestion par face ?
    Merci
    BB = Bounding Box... (Building Blocks c'est pour Virtools et comme ce nom n'a pas été cité j'ai supposé que je pouvais enployer BB sans t'embrouiller)

    géométrie oui c'est facette par facette... donc tres tres lourd et couteux selon tes modeles...
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    Pour commencer, je vais tout d'abord implémenter la solution de l'octree. Quelques questions me turlupinent :

    - a quelle profondeur on arrête le découpage ? (taille des feuilles, nb d'objets max par octree fils ...)

    - comment on le construit ? (on fixe le critère d'arrêt on crée tous les octrees fils puis on range les objets e la scène un par un ; autre solution ??)

    - comment savoir si un objet donné "fait parti" d'un octree donné ? Je m'explique : pour chaque type d'objet, les conditions pour qu'il appartienne à un octree fils seront différentes je pense. En fait, comment classer les objets dans notre octree ?

    Merci

  7. #7
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    alors là chacun fait sa sauce souvent... documente toi un peu sur le sujet tu verra que les avis divergent... à toi de voir ce que tu prefere faire et ce qui est le plus adapté...

    limite de profondeur : aucune si tu le désire... y'a pas de regle
    construction : réccursive bien sur... idéalement tu le bati sur place, et le subdivise récursivement jusqu'a ta limite de profondeur.
    appartenance : test par bounding box le plus souvent... avec une petite prise de tete et un choix à faire pour les objets qui sont sur la limite de séparation...
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

Discussions similaires

  1. gestion des ombres dans une scene 3D
    Par Trysac dans le forum Moteurs 3D
    Réponses: 0
    Dernier message: 07/07/2009, 16h05
  2. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41
  3. gestion des boutons d'une manette : relachement
    Par backfire dans le forum DirectX
    Réponses: 1
    Dernier message: 05/01/2005, 10h13
  4. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  5. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 16h29

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