Accueil > Forum > > > > Oriented Bounding Boxes
Oriented Bounding Boxes
dimanche 1 octobre 2006 à 20:13:07 |
Oriented Bounding Boxes

DarkBoss
|
Bonjour tout le monde, J' ai une petite question pour certains, une grande pour d' autres ( comme moi ^^ ). J' aimerais savoir comment effectuer une "rotation d' une bounding box", comme une OBB. En fait j' ai deja lu pas mal de trucs la dessus, et sa a l' air compliqué, covariance de matrice ( kézako ? ) etc... La situation est la suivante: J' ai mon niveau dans lequel ce trouve un bloc, comme mon niveau est exporté par un script d' export GMAX, dans mon "moteur 3d" il faut que j' effectue une rotation de -90° sur l' axe des x; cependant je calcul ma bouding box, et quand je lance mon jeu, la bounding box a garder le bloc du départ ( non rotaté ) comme model. Alors ma question est la suivante, comment implémenté simplement une oriented bounding box sans space partitionning pour faire une "rotation de la bounding box". C' est très confu et j' en suis désolé. Merci beaucoup car je galère un peu la dessus. A+ DarkBoss
|
|
dimanche 1 octobre 2006 à 20:43:18 |
Re : Oriented Bounding Boxes

luhtor
|
Tu dois pouvoir gérer les rotations suivant les 3 axes pour n'importe quels angles ? Le bounding sphere suffit pas ? T'as quel niveau d'étude (de maths surtout) ?
|
|
dimanche 1 octobre 2006 à 20:59:08 |
Re : Oriented Bounding Boxes

DarkBoss
|
luhtor, merci de me repondre, a chaque fois que je poste une question de graphisme tu es la pour me guider mon gouroux ^^ alors je suis en terminale ES, je pense que ca devrais suffire ( lol  ), non plus serieusement, la bouding sphere ne suffiras pas car j' ai besoin de detecter les collisions avec murs, sols, objets( la ca suffira ). Pour les axes si j' ai bien compris oui j' aimerais pouvoir gérer cela. DarkBoss
|
|
dimanche 1 octobre 2006 à 21:38:53 |
Re : Oriented Bounding Boxes

luhtor
|
Ah bon :) c'est vrai que c'est plutot mon domaine opengl :) mais je fais pas attention au nom de la personne à qui je réponds ^^
C'est sur que pour les murs, le bouding sphere ne suffit pas. Terminale ? donc ca veut dire qu'une matrice de rotation, tu vois pas trop ce que c'est. Enfin on peut utiliser (plus simplement ?) les produits scalaires, mais la encore, je suis pas sur que tu saches ce que c'est exactement ? (faut attendre l'année prochaine pour ca) Une bounding box ca peut se définir avec un centre (du pavé), une base liée au pavé (3 vecteurs unitaires), et les 3 dimensions du pavé. Ensuite apres un premier bouding sphere pour éliminer la plupart des cas. Tu peux à l'aide de plusieurs produits scalaires tester s'il y a collision ou non.
Mais si la rotation suivant l'axe verticale suffit (suffit elle dans ton cas ?), c'est bcp plus simple.
|
|
dimanche 1 octobre 2006 à 21:50:19 |
Re : Oriented Bounding Boxes

DarkBoss
|
Alors j' ai quelques base, normalisation, produit scalaire, vecteur unitaire je ne suis pas sur mais cela peut ce trouver, mais j' aimerais surtout en fait c' est faire comme un glRotateF, mais pour ma bounding box; je m' explique, glRotatef permet de faire une rotation visuel, moi j' aimerais faire une rotation de coordonnée c' est a dire que les coordonnée soient transformées comme si elles avaient subient une rotation. Je ne sais pas si cela est possible par contre. Pour les precision, mes bounding boxes sont définies par xmin xmax ymin ymax zmin zmax mais je n' ais pas le barycentre, je peux cependant rajouter un barycentre dans ma structure ca ne me gene pas mais je ne vois pas a quoi cela servirais, donc si tu pouvais m' expliquer ou meme me faire découvrir du code pur, pas du meta code j' en serait comme tout heureux ;)
DarkBoss
|
|
dimanche 1 octobre 2006 à 22:34:50 |
Re : Oriented Bounding Boxes

luhtor
|
Bas oui glRotatef ca multiplie par une matrice de rotation. Mais je suis dsl, mais je vois pas comment te l'expliquer. Dans tous les cas, tu auras besoin du centre de ton bounding. Tu pourrais utiliser opengl pour te calculer la matrice: - tu charges la matrice identité - tu fais les rotations que tu veux - tu récupères la matrice que tu stokes dans un tableau
Soit P le centre de ton pavé, et M le point que tu veux tester. Le vecteur PM multiplié par l'inverse de la matrice (ici la transposée de la matrice que tu as récupérés) te donne un nouveau vecteur qui correspond aux coordonnées du point M dans la base lié au bouding. Soit R ce vecteur. Apres c'est tout simple: si abs(R.x) < demi coté selon x et abs(R.y) < demi coté selon y et abs(R.z) < ... alors le point M est dedans donc en collision.
Mais avec les produits scalaire c'est plus efficace: (toujours avec la matrice récupérée de opengl), soit U1, U2, U3 les colonnes 1 et 2 et 3 de la matrice. C'est en fait les vecteurs de la base liée au bounding. Soit P le centre de ton pavé, et M le point que tu veux tester. Si abs(PM scalaire U1) < coté selon U1 et abs(PM scalaire U2) < coté selon U2 et ... alors collision.
|
|
dimanche 1 octobre 2006 à 22:49:29 |
Re : Oriented Bounding Boxes

DarkBoss
|
Hum, je vois mieux pourquoi tu me demandais quel niveau j' avais en maths  . Moi je voudrais juste que la bbox se retrouve orientée de la même manière que mon bloc, c' est peut - etre ce que tu as voulu me dire lol mais je ne comprend pas tout en fait en gros j' aimerais faire une rotation d' un pavé comme le fait opengl, a paramant c' est ce que tu me dis, mais abs c' est quoi comme fonction ? et comment récupérer les colonnes 1-2 et 3 de la matrice ? DarkBoss
|
|
dimanche 1 octobre 2006 à 23:00:21 |
Re : Oriented Bounding Boxes

luhtor
|
a pardon, abs (c'est connu) c'est "valeur absolue". Mais ce que tu veux, c'est ce que j'essais de t'expliquer :) Tourner un cube c'est pas dure, mais faut pouvoir tester les coordonnées apres pour la collision.
Une matrice c'est un tableau de 16 valeur. Soit T ce tableau. La première colonne, c'est T[0], T[4], T[8], T[12] c'est pas compliqué :)
Le produit scalaire tu connais ?
|
|
dimanche 1 octobre 2006 à 23:01:05 |
Re : Oriented Bounding Boxes

luhtor
|
Enfin tout ce que je te racontes, c'est simple. Tu verras ca l'année prochaine en prepa ou fac scientifique.
|
|
mardi 3 octobre 2006 à 18:51:55 |
Re : Oriented Bounding Boxes

DarkBoss
|
ok lol donc cen gros faut deja que j' aprenne quelques trucs sur les matrices etc... je me demandais si c' etait pas plus simple de lancer un rayon et de voir si quelque chose le traverse et s' il le traverse a une distance trop proche -> collision ?!
DarkBoss
|
|
Cette discussion est classée dans : box, rotation, boxes, bounding, oriented
Répondre à ce message
Sujets en rapport avec ce message
Bounding boxes : Comment faire [ par norton ]
Hello, j'ai essayé quelques techniques mais sans succès... Quelqun peut m'aider car je début en opengl...Si vous avez un ptit code chuis preneur ;) va
Tracer des axes en fonction de chiffres entrées dans l'édit box [ par MasterShadows ]
Salut à tous.Bon, voilà mon problème: je suis toujours en train de développer mon prog de traceur d'équations, mais depuis 3 mois, je bloque sur la de
CRecordset et Combo Box [ par DraaFil ]
Bonjour à tous,Voici mon problème:J'ai une bd access qui est loader dans mon view. j'ai une autre fenetre qui à un combobox. Voici le problème, je veu
Rotation et origine [ par goutbouyo ]
Salut, Salut, Je veut faire une fonction réseau sur mon jeu, donc il faut que je représente les persos ennemies. Pour cela, je prends les coordonnés e
Probleeme avec mon COMBO BOX [ par DraaFil ]
Hé oui, encore moi!Premièrement, une liste d'item est loader dans mon comboBox. Je suis à la recherche de la fonction qui execute lorsque j'ai choisi
rotation avec les fleches [ par piopium ]
voici mon pbj'ai declarer un cube jusque la tt va bienmais je ve le faire tourner grace au flechesdonc je metvoid Fleches(int key, int x, int y){
Problème avec GetWindowTextLenght [ par oceax ]
Bonjour !!Voilà je suis débutant en c++ et je voudrais me familiariser avec l'utilisation de l'allocation dynamique de la mémoire. Pour mon projet j'a
BS_GROUPBOX ??? [ par SnOOpss ]
bonjour je suis en train de me refaire des classes pour les dialogs et je butte sur les group box ( le cadre )!Impossible de changer leur couleur alor
Rendre inactifs tous les radio boutons d'une Group Box apres avoir cliqué sur l'un des radio boutons. VC++ [ par ninouch ]
J'ai crée une group Box dans laquelle j'ai mis 6 radio boutons.Ils fonctionnent très bien mais j'aimerais les rendre inactifs dès que l'on a cliqué su
Bip lors de l'utilisation du clavier sur une picture box [ par ROnE91 ]
Bonjour, J'ai une appli programmée avec l'api win32 avec un hook sur le clavier qui marche lorsque que le focus est sur une picture box. Le
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|