begin process at 2012 05 29 00:26:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Collision 3D


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Collision 3D

mercredi 15 décembre 2004 à 18:38:19 | Collision 3D

DJPierreB

Actuellement, j'ai fait un programme qui dessine les murs et le sol d'une pièce.
Je sais me déplacer dans la pièce. Je voudrais donc y ajouter des tests de collision.

Je voudrais ne pas pouvoir passer au travers des murs.
J'imagine que le test se fait par rapport à un plan. C'est tester si moi (identifié par un point 3D x,y,z) je suis en contact avec un plan.
J'ai du mal à imaginer l'implémentation ainsi que les calculs.
Actuellement, j'ai un algo qui crée les murs à partir d'un fichier texte. Mais ce n'est jamais qu'une succession d'appels aux fonctions de dessins de vertex.
Faudrait-il que chaque objet graphique (par exemple un bout de mur) soit en fait une classe ? Ainsi j'imagine que ça simplifierait les tests.
Je parcourerais chaque objet du graphique et je vérifierais que je ne sois pas en collision avec.
Quelle est la formule qui me permet de savoir où je suis par rapport à un plan ? Quelles sont les conditions à écrire pour savoir si on a dépassé ce plan ou si on est toujours devant?

Merci pour votre aide.
mercredi 15 décembre 2004 à 21:48:08 | Re : Collision 3D

Funto66

"Faudrait-il que chaque objet graphique (par exemple un bout de mur) soit en fait une classe ? Ainsi j'imagine que ça simplifierait les tests." -> alors ça : non, sûr.

Si tes murs sont, comme je le suppose, placés sur un sol plat, et qu'en plus il n'y en a pas de placé en diagonale, ça simplifie ton travail : tu peux te rapporter à des calculs en 2D.
Le mieux je pense serait que tu te fasses un dessin; dans ton prog, dessine les murs avec une certaine épaisseur; ensuite, tu peux tester si ton perso est dans le mur simplement avec un gros if (regarde ton dessin pr voir comment faire, c'est simple, il y a collision si la pos 2D de ton perso se trouve dans le rectangle représenté par ton mur, vu de haut bien sûr).
S'il y a collision, il faut trouver un système, en général en utilisant des vecteurs, qui te permet d'avancer en fonction de ton mouvement (pour longer le mur).
Bref pour bien t'expliquer faudrait que je te fasse un dessin mais j'i la flemme :p C'est déjà un point de départ je pense...

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
jeudi 16 décembre 2004 à 10:21:16 | Re : Collision 3D

DJPierreB

Merci pour ta réponse.

Effectivement, actuellement mon problème de collision se situe dans un espace de type labyrinthe, donc plutôt 2D.
Je pensais qu'en définissant un pan de mur comme une classe, je pourrais stocker les coordonnées du mur et ainsi, en parcourant les coordonnées de chaque objet, savoir si j'étais en collision ou non.

Si je n'utilise pas de classe, comment je fais pour stocker les coordonnées ?
jeudi 16 décembre 2004 à 23:59:49 | Re : Collision 3D

Funto66

Si bien sûr tu peux utiliser une classe mais ce que je voulais dire en fait c'est qu'il ne te faut pas une classe par mur (c'est ce que j'avais compris...).
Sinon oui, une classe Mur peut être utile, ensuite tu te stockes un petit tableau d'objets de type Mur et ça constituera ta Map, tu peux donc englober ça dans une classe Map par exemple :)

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
vendredi 17 décembre 2004 à 10:32:26 | Re : Collision 3D

DJPierreB

Merci Funto66


Cette discussion est classée dans : plan, 3d, collision, actuellement, murs


Répondre à ce message

Sujets en rapport avec ce message

collision ds un monde 3d [ par mat74 ] salut voila je cherche comment gerer les collision ds un monde 3dsi vs connaissez un site sur le sujet ou alors si vs pouvez m'expliquer .j'utilise op Gestion de collision dans un espace 3D [ par vincemail ] Bonjour à tous, je suis en train de programmer un petit jeu en 3D avec OpenGL, et je reviens à ma gestion des collisions. En effet, pour le moment je collison 3D [ par cppdupdup34 ] voila j'ai un petit souci dans mes detections de collision.le test de collision entre un point et un pavé orienté n'importe comment dans l'espace s'ef Retrouvé les coordonnees 3d depuis la 2D [ par Seboo ] Bonjour, J ai un probleme pour retrouver les coordonnees en 3d de la souris. J'utilise sous glut un lookat en -5,5,5 qui regarde en direction 0,0,0 so collision dans ogre3d (camera traverse les mus) [ par meryazer ] Bonjour tout le monde,j'ai exporter une salle blender en (.mesh) sur ogre, et j'ai appliquée un framelistener pour pour pouvoir me balader dedant , cà Collision entre objets 3D [ par mmaximum ] Salut à tous,Je suis nouveau sur le forum. Je sais déja bien programmé(c/c++, python, xhtml/html, css, javascript,...)Je suis en train de développer u plan de coupe 3D sur objet [ par jcloupgarou ] Bonjour,je réalise un modeleur pour un projet info et je dois ajouter un outil permettant de faire des plans de coupe 3d des objets modélisés, donnant Programmation 3D [ par adess00 ] salut ! Je voudrais me mettre a la progrmmation 3D mais je ne sais pas trop quoi utilisé et ou trouvé de bon tutoriaux (en francais si possible). Et Interfacer 3DSMax avec DirectX ? [ par bubbathemaster ] Bonjour,Il y a quelques mois je me suis mis à m'interresser en détails à DirectX. Ma première approche a été d'utiliser les bonnes vieilles fonctions mettre au première plan Open dialog et Save Dialog, [ par Sim 2005 ] Bonjour,J'aimerais savoir comment faire pour postionner une fenêtre de type "ouvrir" ou "enregistrer" au premier plan(appellée par les api windows Get


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales