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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|