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

Moteurs 3D Discussion :

Arbre BSP sur le moteur Source


Sujet :

Moteurs 3D

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Arbre BSP sur le moteur Source
    Bonjour à tous,
    Je participe à la traductions officiel de la documentation de Valve sur le moteur Source.

    Mais j'ai quelques problèmes de compréhension sur les arbres BSP, mes conaissances étant insuffisante dans ce domaine.
    Je souhaiterai avoir quelque explications brèves, pas besoin d'aller trop dans les détails car le but de cette doc est de mapper, réaliser juste des maps.

    Avec le Source Engine, lors de la compilations, 3 outils sont executez :
    BSP :
    Je ne comprend pas bien son utilité, créer les polygone? Arbre BSP?

    VIS :
    Divisez tous l'espace 3D en zone, qui sera afficher ou non par le moteur :
    Les VISLEAF.

    RAD :
    Calcul de la lumière et radiosité.

    Pour BSP je suis allez sur Google mais j'ai trouvé des explications différente, et que je ne comprend pas :
    http://fr.wikipedia.org/wiki/Binary_space_partitioning
    http://pagesperso-orange.fr/philippe.../bsp/bsp1.html

    Voici la doc de Valve en traductions :
    http://developer.valvesoftware.com/wiki/SDK_Docs:fr

    Merci beaucoup.

  2. #2
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Le BSP peut avoir plusieurs utilités. En gros, c'est un arbre binaire ou les polygones sont divisés en deux sets (dans le cas d'un BSP, il me semble que l'axe de séparation est complètement arbitraire). Ensuite, tu peux avoir plusieurs utilités.

    Le premier, c'est pour la visibilité. Imagine qu'un noeud est invisible, ben tu peux directement exclure tous les noeuds enfants, car ils ne seront pas visibles.

    L'autre c'est dans le raytracing, où le principe est sensiblement le même, si un rayon ne "traverse" pas un noeud, tu peuxêtre sur qu'il traversa pas les noeuds enfants... Ca te permet d'avoir une complexité réduite pour le lancer de rayon (O(log n) pour un rayon je crois).

    C'est pour ça qu'on appelle ça des structures d'accélérations :p. Maintenant d'autres structures sont utilisées, comme le kD-Tree ou le BVH, qui est pas mal utilisé dans les scènes dynamiques.

    Les BSP ont surement d'autres usages que ceux que j'ai cité, mais je ne les connais pas :p.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    Mais ce n'est pas le rôle du VIS de dire au GPU d'afficher ou non telle ploygone?

  4. #4
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Je ne connais pas le fonctionnement du moteur Source donc je peux pas te dire mais, d'après cette page, les "vis" sont un peu plus haut niveau et générés justement par les BSP...

  5. #5
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    Dans le cas de Source (et de Quake avant ça sur lequel était basé Source) les VISLEAF sont probablement les feuilles (leaf = feuille en anglais) de l'arbre BSP.

    En gros ton arbre BSP divise ton espace petit à petit en volumes de plus en plus petits, quand il n'y a plus de subdivisions possibles on a un volume qui correspond à une VIS (unité indivisible de "VISibilité").

    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

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    L'outils VIS n'est pas obligatoire, il permet d'ameliorer les performances.

    D'apres ce que j'ai pus lire les arbre BSP sont seulement pour les faces, pas la 3D, qui est calculer entierement, le VIS sert lui a limiter la 3d.

    Ais-je bien compris?

  7. #7
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Qu'entends-tu par les BSP sont "seulement pour les faces" ? Je pense vraiment qu'ici les BSP ont un rapport avec la visibilité...

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    http://pauillac.inria.fr/~maranget/X...evy/sujet.html

    Cet article et d'autres que j'ai trouver sur Google font allusion aux faces.

  9. #9
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Effectivement. Tu peux considérer qu'une face <=> un triangle, je pense... Et c'est bien marqué :
    Les arbres BSP (Binary Space Partition) sont une représentation d'un ensemble de n hyperplans dans un espace à k dimensions destinée à faciliter le calcul des faces visibles à partir de tout point d'observation.
    Je vais essayer de te ré expliquer le fonctionnement, en prenant une autre structure d'accélération plus facile à visualiser : les BVH. En gros, imagine une scène avec plein de triangles (tes "faces"). Ces triangles sont contenus dans une grosse boîte (dans le cas du BVH, un AABB), le noeud racine. Puis, on subdivise au fur et à mesure cette grosse boite en deux sous-boites plus petites, chacune contenant un sous-ensemble des triangles, puis, ces deux boîtes sont elles-mêmes divisées récursivement en deux autres sous-boîtes... jusqu'à un certain critère à partir duquel on ne divise plus les boîtes (et c'est là que tu as ton VISLEAF).

    Pour "couper" ces boîtes, dans le cas d'un BVH, c'est à partir d'un des trois axes x, y, z.

    Le cas du BSP est relativement similarie dans le sens ou le principe est identique (tu subdivises récursivement ta "boite") sauf que dans le BSP, les axes de séparation sont totalement arbitriares, et pas perpendiculaires à deux des axes de base.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    Mais sans le VIS sous Source, en mode wireframe, tous les polygone sont calculé, tous le monde entier.
    je ne comprend donc pas l'utilité du BSP exepter les faces.

  11. #11
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Ben j'imagine qu'effectivement tu vois tous les polygones devant moi... J'imagine que le moteur discarde les polygones derrière toi (je te l'accorde, pas besoin d'un BSP pour ça... un simple frustum culling suffit)... Ecoute j'en sais pas plus, faudrait voir du côté de pro de Source

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    La doc de vavle est orienter maping, les explication sont très brèves sur le fonctionnement du moteur.
    Si je ne trovue pas ici je ne trouverais pas labas.

  13. #13
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par anarkia777 Voir le message
    La doc de vavle est orienter maping, les explication sont très brèves sur le fonctionnement du moteur.
    Si je ne trovue pas ici je ne trouverais pas labas.
    Le source code doit trainer quelque part..

    ! Aie ! pas taper !

    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

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    Quand on creer un mods on à tous le code Source du jeux, si c'est ca que tu veux dire.

  15. #15
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    ahaha nan c'était un jeu de mot avec le nom du moteur (Source)

  16. #16
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par Bakura Voir le message
    ahaha nan c'était un jeu de mot avec le nom du moteur (Source)
    Nan pas un jeu de mot. Mais c'est juste quelque chose dont on ne peut probablement pas parler ici..

    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

  17. #17
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Ahhhhhhh !

    Tu penses vraiment qu'il est dispo sur ... ?

  18. #18
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    Oui le code Source est dispo du jeux Counter.

  19. #19
    Membre régulier Avatar de Froyok
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 83
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par anarkia777 Voir le message
    Mais sans le VIS sous Source, en mode wireframe, tous les polygone sont calculé, tous le monde entier.
    je ne comprend donc pas l'utilité du BSP exepter les faces.
    Etant mappeur à mes heures libres sur le moteur source de VALVe, et cherchant l'optimisation des cartes, voilà ce que je peux dire :

    BSP :
    Quand on créé une map sous Hammer, nous utilisons des brush composé de planes à doubles triangle (de base, rien ne nous empêche de créer des triangles).
    S'il nous vient l'envie de ne pas calculer une face, et surtout le light-mapping associé, nous utilisons une texture appelé "nodraw" qui est alors transparente une fois affiché en jeu, et aucun calculs n'est effectué avec, on s'en sert pour fermer l'espace, éviter les leaks, et surtout pour économiser des faces à calculer. Donc je pense que dans ce cas, il s'agit simplement de savoir quels faces doivent être affichées et surtout enregistrées dans le bsp.

    VIS :
    Le vis s'occupe de la visibilité, c'est lui qui détermine quelles faces sont visiblent pour le joueur, et créé donc des zones qui sont calculé comme visiblent depuis tel ou tel point. C'est lui qui partitionne le bsp et qui indique au jeu et au moteur quoi afficher.

    RAD :
    Lui, il s'occupe du light mapping ^^.


    __________

    Pour le code source, bah, il n'y a pas tout, il ne faut pas rêver, et pour le bsp, j'ia entendu parler de LUMP. J'ai eu un problème avec le bsp, le format diffère d'un jeu à l'autre, car justement de slump sont rajouté suivant les version, ce qui fait qu'un moteur mis à jour peut lire tout les formats, pas les anciens.
    Ce problème survient par exemple avec Dark Messiah. Les développeurs ont urilisé une version du source engine qu'ils ont modifié, ainsi que le bsp, résultat impossible d'utiliser les compilateurs de Valve pour Dark Messiah. Ce n'est pas la même version pour les bsp utilisés.


    Voila, en espérant aider en racontant tout cela...
    J'espère ne pas dire de bêtises, surtout concernant les lumps...

  20. #20
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 59
    Points : 18
    Points
    18
    Par défaut
    Vivi je connaît tout ca, j'ai rédiger toute la partie FR de Valve.
    Sauf que j'ai rien compris au fonctionement pur du moteur notemment BSP et VIS.

Discussions similaires

  1. Question sur les arbres BSP
    Par DiGiTAL_MiDWAY dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 18/11/2006, 15h42
  2. Stats sur les moteurs de recherche..
    Par titoumimi dans le forum Référencement
    Réponses: 5
    Dernier message: 15/03/2006, 17h31
  3. pseudo et mot de passe sur form avec source de données SQL
    Par bobdylan dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/02/2006, 09h19
  4. erreur sur un code source basique
    Par helix_tp dans le forum Langage
    Réponses: 4
    Dernier message: 23/01/2006, 21h55
  5. Dossier sur les moteurs 3D
    Par Flyingdutchman dans le forum OpenGL
    Réponses: 4
    Dernier message: 15/04/2005, 16h47

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