[3D] BSP Tree

BSP Tree [3D] - Programmation

Marsh Posté le 19-12-2001 à 21:51:30    

J'ai essayé de comprendre les BSP tree grâce aux docs que j'ai trouvé dans des bouquins et sur le net, et disons qu'il y a un truc très très important que je n'ai pas compris...
 
Ils parlent tous de plans, mais ils viennent d'où ces plans? Ils disent que si l'on veut faire un arbre d'une scène 3D on doit créer des plans pour diviser la scène, mais on les trouve comment ses plans? Parce les exemples sont pas clairs, ils montrent juste un carré qu'ils coupent en deux, puis dont il recoupent en deux une des portions...
 
Voilà, si vous pouviez un peu plus m'éclairer.

 

[edtdd]--Message édité par Alload--[/edtdd]

Reply

Marsh Posté le 19-12-2001 à 21:51:30   

Reply

Marsh Posté le 19-12-2001 à 22:48:55    

ben ces plans c'est toi qui les choisis.
 
le choix des plans est strategique c'est
ce qui determinera la qualite de ta subdivision
(suivant ce que tu cherches a optimiser
=> la profondeur maximale de ton arbre
ou le nombre de divisions de polygones)
 
A+
LEGREG

Reply

Marsh Posté le 20-12-2001 à 09:45:07    

En gros c'est à toi de mettre en place une heuristique pour déterminer des plans optimaux... c'est ca qui est très chaud. :sweat:  
 
 :hello:

Reply

Marsh Posté le 20-12-2001 à 09:55:46    

J'ai vaguement commencé y a qqs semaines à apprendre le prog 3D (DirectX). J'trouve ça effrayant tous ces algo d'optimisation.
Question à ceux qui connaissent au moins un peu la prog 3D (qui ont déja fait (ou même essayé, sans faire n'imp.) un moteur 3D :
combient de temps vs avez mis à vous sentir suffisament bon pour vous lancer ?

Reply

Marsh Posté le 20-12-2001 à 15:46:04    

moi je pense qu'il faut deja savoir utiliser tout ce qui est poly, texture, lumiere, transformation dans l'espace, transparence avant de se lancer dans les optimisation, enfin je pense, ah oui aussi , le chargement de fichier style 3ds et/ou autre. Snif ca me rappelle que j'ai encore pleind eboulot ce que je dis

Reply

Marsh Posté le 20-12-2001 à 17:08:57    

kick a écrit a écrit :

moi je pense qu'il faut deja savoir utiliser tout ce qui est poly, texture, lumiere, transformation dans l'espace, transparence avant de se lancer dans les optimisation, enfin je pense, ah oui aussi , le chargement de fichier style 3ds et/ou autre. Snif ca me rappelle que j'ai encore pleind eboulot ce que je dis  




 
tu bosses pour quelle boite ? et ou ? (ça m'interresse de bosse la dedant !)

Reply

Marsh Posté le 20-12-2001 à 17:36:50    

si seulement je bossais la dedans, malheureusement non, mais je recherche

Reply

Marsh Posté le 20-12-2001 à 21:35:03    

Tout dépend de ce que tu veux optimiser.
 
Actuellement les bsp tree sont surtout utilisés pour la recherche des faces voisines pour la détection de collisions.
Tu limites ainsi le nombre de faces à tester.
 
Après tu peux aussi optimiser le calcul 3D et l'affichage en insérant tes objets dans un bsp tree, c'est surtout utile si tu as un monde 3D cloisonné avec des salles. En gros les plans ce sont les murs ... mais y'a des douzaines de cas particuliers, (si le mur est troué par exemple). C'était pratiquement indispensable quand tout se faisait en soft, maintenant l'intérêt est moindre.

Reply

Marsh Posté le 20-12-2001 à 23:08:59    

Pour un moteur 3D qui vise pour le moment la polyvalance (je sais pas si je ferai des salles ou des extérieurs, surement ce qui me passe par la tête :) ), quelle est la meilleure technique a utilisé et qui n'est pas trop compliquée?
 
Quadtree? Octree? Le fameux BSP tree? Ou autre?

Reply

Marsh Posté le 21-12-2001 à 00:30:00    

J'ai dit une connerie, pour les détection de faces c'est pas un bsp tree qui est utilisé mais un quad ou un octree.
Le bsp c'est un partitionneur d'espace, rien à voir :)
 
Sinon pour répondre à ta question, la méthode la plus simple pour optimiser c'est la sectorisation, c'est à dire découper le monde en gros morceaux (idéalement carrés) et ne prendre en compte que les morceaux les plus proches.
Par exemple, en simplifiant, ne gérer les collisions qu'avec les faces du secteur sur lequel le joueur se trouve, et n'afficher que ceux qui sont à moins d'une certaine distance du joueur ...
Enfin c'est qu'un exemple.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed