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

Développement 2D, 3D et Jeux Discussion :

A propos des bounding box


Sujet :

Développement 2D, 3D et Jeux

  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 A propos des bounding box
    Bonjour,

    Je suis en train d'implémenter un système de raytracing et pour cela je souhaite utiliser les bounding box. Cette technique semble bien adapté car étant "centrée sur l'objet" mais quelque chose me chagrine. Au départ de mon algo, je lance mon rayon mais y a t'il un moyen de m'orienter directement vers les bounding box susceptibles d'être dans la trajectoire au lieu de toutes les tester (et si possible tomber rapidement sur la plus proche...)? Exite t'il une technique pour cela? Faut-il coupler un système de partitionnement du style octree pour trier le gros de la scène?

    merci

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    tu a la réponse, il faut utiliser un système de partitionnement genre octree, BVH et autre kd Tree selon le cas d'utilisation
    * 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

  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 cette réponse mais la question sous-entendait "si oui comment?"
    Je veux dire, dans quelle mesure bounding box et octree sont liés? Jusque qu'elle précision les octree interviennent ils? Auriez-vous des docs là dessus?

    merci

  4. #4
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    je n'ai pas de doc en tête mais avec un peu de recherches tu peux en trouver facilement

    pour te faire un petit résumé boundingbox vs octree (ou autre quadtree, kdtree ect)
    - la boundingbox délimite grossièrement un objet et donc la place qu'il occupe dans le monde virtuel
    - le machin tree subdivise le monde virtuel en zones de manière à simplifier / accélérer les tests de collision / visibilité (inutile d'afficher un objet hors du champ de la caméra)

    edit : voici une petite applet java démontrant des algorithmes de subdivision
    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 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 shenron666 mais en fait mon problème n'est pas d'implémenter l'une ou l'autre des solutions mais de savoir s'il est intéressant de les coupler (octree pour dégrossir en fonction de la position dans la scène et bounding box pour le reste) et si oui comment?

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Oui, il faut les coupler. Comment ? Tu peux avoir ta scène composée de plusieurs objets ayant leur BB (ou autre type de volume, les boîtes ne sont pas les seuls); tu décomposes ta scène dans l'arbre que tu as choisi selon les BV des objets la composant.
    Ensuite, tu peux encore avoir des sous-arbres et sous-BV pour chaque objet s'il est assez complexe pour en justifier le coût.

  7. #7
    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
    Donc en suivant ton raisonnement, IrmatDen, je descend dans mon octree jusqu'à ce que je tombe sur noeud contenant un ou plusieurs volumes englobants pour le(s)quel(s) je fais un test d'intersection avec mon rayon. Maintenant pour ce qui est du parcours dans l'objet (pour atteindre mes faces, mes sommet ou juste un sous-ensemble de l'objet) ne me suffirait-il pas de tester les points moyens des volumes englobants les plus proches de mon rayon?

  8. #8
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Si tu vérifies les volumes à proximité du rayon (et non pas le noeud dans lequel il entre), ça ne t'indique pas contre quelle(s) primitive(s) tester tes intersections; tu te retrouves à définir un volume pendant que tu traces, et ce pour chaque rayon qui entre dans l'objet (un peu comme s'il n'y avait pas de volumes englobant, ou pas assez)... enfin, si je comprends bien ta question

  9. #9
    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
    Oula j'avoue que là je ne te suis pas trop. Mon soucis est de savoir quand je passe la main aux volumes englobants une fois que j'ai précisé ma position dans l'espace à l'aide des octree.
    J'ai donc bien mes volumes qui existent déjà autour de mes objets et mon but est de faire en sorte de tester tout de suite les bons (ceux qui sont susceptible de croiser mon rayon) d'où l'utilisation des octrees. Ce que je proposais est de prendre comme critère de choix pour l'arrêt du parcours de l'octree non pas une précision fixe mais plutôt le nombre de volumes contenus.
    Exemple : Un noeud de mon octree contient 4 volumes, en poursuivant dans un des fils de ce noeud (en fonction du chemin de mon rayon bien sûr) je tombe sur un noeud contenant un seul volume donc hop, je passe la mains au test d'intersection rayon/volume englobant. Qu'en dis-tu?

  10. #10
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    J'avais donc mal compris ^^

    Citation Envoyé par f56bre Voir le message
    Ce que je proposais est de prendre comme critère de choix pour l'arrêt du parcours de l'octree non pas une précision fixe mais plutôt le nombre de volumes contenus.
    Oui, ça te permettra d'éviter d'obtenir trop de zones vides (et donc trop de tests d'intersections inutiles).

Discussions similaires

  1. bounding box avec des couleurs différentes
    Par mayssaMM dans le forum Images
    Réponses: 2
    Dernier message: 06/08/2013, 23h59
  2. Extraire le bounding box encadrant des contours
    Par NGeVtC87 dans le forum OpenCV
    Réponses: 4
    Dernier message: 22/01/2013, 13h21
  3. bounding box à partir des contours de l'objet
    Par mar1985 dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 06/06/2009, 03h25
  4. Redéfinir Bounding Box des formats .eps
    Par gigo88 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 28/06/2007, 01h12

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