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 :

Frustum & octree indisociable?


Sujet :

OpenGL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut Frustum & octree indisociable?
    Bonjour,

    Voila mon soucis, j'affiche un objet comme un petit immeuble ou encore une maison, je voudrais faire un frustum culling pour eviter biensur d'afficher tout les polygones de ma scene, mon probleme est de savoir si je suis obligé de faire un octree pr utiliser le frustum ou encore une autre structure de partionnement.

    Merci

  2. #2
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    Ce n'est pas indissociable.

    Octree est une structure d'accélération. C'est à dire que si il n'y a pas d'octree ou de structure similaire (hachage, grille régulière, kd tree, etc) il est plus difficile de trouver rapidement les objets qui pourraient être dans ton frustum.
    Le but c'est de réduire le temps passé à tracer.

    La plupart des jeux modernes affichent tellement d'objet qu'il est difficile d'obtenir une vitesse d'affichage interactive (>10 fps voire 30 fps) sans une certaine forme de structure d'accélération.

    Comme je l'ai dit plus haut il y a d'autres formes. Quake 3 par exemple utilisait des PVS (potential visibility set, ensemble des objets visibles depuis une certaine position précalculée), axis aligned bounding box (boite englobante alignée sur les axes ce qui permettait de faire du pruning/élagage rapide) et bsp (arbre avec plans de subdivisions arbitraires ce qui permettait de retrouver rapidement la position courante dans la liste des noeuds). Et ils pouvaient se permettre de précalculer le tout parce que la géométrie du jeu était statique.

    Mais en gros, il y a des tonnes et des tonnes de techniques qui tournent plus ou moins selon les mêmes principes ("moins de calcul c'est mieux"), quelle stratégie appliquer dépendra beaucoup du type de contenu (statique, dynamique, ouvert, fermé, types d'occluders) et des contraintes de la plateforme (calcul rapide, calcul lent, mémoire constrainte, mémoire illimitée, accès mémoire rapide, accès mémoire lent). Etc.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    Merci pour ta réponse!
    En gros voici un schéma de la maison que j'affiche le carré rouge, c'est juste des escaliers, les trous représente des portes.

    Pensez vous que le frustum est essentiel? et si oui, je ne vois pas comment implémenter l'octree etant donné que cette structure est proportionnelle au niveau du découpage et donc la piece du milieu sera coupé en 2 et ne pourra etre affiché qu'a moitié.

    Merci de m'eclaircir un peu sur le sujet!

  4. #4
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 582
    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 582
    Par défaut
    pour les intérieurs, les PVS ou un système de portal sont bien plus simple à gérer et bien plus efficace qu'un octree
    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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    Merci a toi, j'ai regardé le principe sur wikipedia et d'autres sites sans trouver de code sur les PVS donc si tu en as un, ca m'interesserait fortement!

    Si j'ai bien compris le principe, on fait une sorte d'AABB par salle avec la liste des objets contenus dans la salle, à afficher, et apres on fait un test de collision avec le frustum view pour savoir quelle(s) salle(s) affichée(s)?

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    si tes salles sont toujours de type rectangulaire, ne te prend pas la tête, fait un système de portal, ce sera super simple à faire et très efficace
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    merci a toi, j'ai cherché systeme portal (et meme portal system) en anglais mais je n'ai rien trouvé sur le sujet. As-tu des sites qui expliquerai ca?
    Pour les collisions avec un mur( pour ne pas passer a travers), a-t-on un autre choix que de faire des tests d'un vecteur entrant en collision avec un triangle? (on considere que le mur pour avoir des 'trous' comme une entrée)

  8. #8
    Membre confirmé
    Avatar de Fabien Henon
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 151

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Par défaut
    Un des moteur de rendu que j'ai développé est basé sur les portals.

    Voici le lien.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    Merci a tous, je vais tester ca

Discussions similaires

  1. Moteur 3D : Octree + Frustum
    Par Lynix dans le forum Moteurs 3D
    Réponses: 1
    Dernier message: 11/01/2010, 00h43
  2. Probleme avec du frustum Culling
    Par zlamouche dans le forum OpenGL
    Réponses: 13
    Dernier message: 18/03/2004, 08h29

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