Accueil > Forum > > > > Gestion de collision dans un espace 3D
Gestion de collision dans un espace 3D
dimanche 12 mars 2006 à 12:17:58 |
Gestion de collision dans un espace 3D

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 fais la détection en regardant la position de la caméra par rapport à chaque triangle qui compose mon monde. Ceci demande de regarder tout d'abord si la caméra se trouve devant le triangle, puis de calculer la distance de la caméra au triangle. Ceci à l'avantage d'être très précis, mais c'est lourd en calculs... Avec quelques milliers de triangles ca pose pas de problème, mais j'ai peur que si mon jeu se complexifie ca commence à ramer... Alors je me penche sur l'utilisation de volumes/boites englobantes. Mais je n'arrive pas à voir comment on peux utiliser ces boites englobantes pour un grand mur en diagonale par exemple... Si quelqu'un a une idée... Je voudrais savoir aussi si c'est une méthode souvent utilisée dans les jeux 3D si jamais quelqu'un sait  Merci à ceux qui ont eu le courage de lire mon roman :-) Bonne journée. Vincent
|
|
dimanche 12 mars 2006 à 12:54:33 |
Re : Gestion de collision dans un espace 3D

platon179
|
Réponse acceptée !
Salut :)
Tu peux utiliser une technique de subdivisions spatiale, afin d'accélérer à la fois l'affichage de ton monde, et la gestion de tes collisions, les quadtrees ou octrees par exemple... Dans ce cas, tu auras beaucoup moins de triangles a tester. Le principe est très simple : tu prends tous tes triangles, et tu les classes en fonction de leur position dans l'espace, récursivement... Tu n'auras alors qu'à tester et afficher les triangles des sous-espaces ainsi créés qui sont visibles... Tous les autres peuvent simplement être sautés, car ni visibles ni utiles pour les gestions de collisions...
Sinon, pour ton souci de mur en diagonale, regarde du côté des OBB (Oriented Bounding Box), ca permet justement de traiter ce genre de problèmes ;)
Bon dimanche @+
|
|
dimanche 12 mars 2006 à 15:24:03 |
Re : Gestion de collision dans un espace 3D

vincemail
|
Ah vi c'est une super idée ca de faire des subdivisions spatiales, ca devrait me permettre de bien accélérer le jeu. Je vais me renseigner sur les OBB, merci beaucoup !
|
|
mardi 14 mars 2006 à 16:19:52 |
Re : Gestion de collision dans un espace 3D

fuliculi
|
Pour l'affichage, en effet un arbre peut t'aider (perso, je préfère l'arbre binaire). Mais pour ce qui est des colisions, je te conseille d'utiliser des bounding box (et bounding sphere, oriented bounding box, ...) c'est beaucoup plus rapide. Et tu peux combiner tout ça.
Exemple :
- tu as deux voitures, tu calcul leurs bounding box.Ca se résume aux max et min de la boite qui englobe ta voiture (xmin, xmax, ymin, ymax, zmin, zmax en parcourant tes vertex).
- tu fais ensuite un test de colision entre les deux bounding box. si x1min > x2max : pas de colision ou si x1max < x2min : pas de colision ou si y1min > y2max : pas de colision
ou si y1max < y2min : pas de colision ou si z1min > z2max : pas de colision
ou si z1max < z2min : pas de colision sinon colision
- (optionel) si il y a colision des bounding box, alors tu peux faire un test plus avancé comme le tien
En utilisant des boîtes englobantes orientées (boite suivant l'orientation de ta voiture et non plus alignée sur les axes du monde) tu auras un test de colision plus précis mais plus compliqué à mettre en place.
|
|
mercredi 15 mars 2006 à 13:01:16 |
Re : Gestion de collision dans un espace 3D

vincemail
|
Pourtant je suis bien obligé d'orienter les bounding box s'il y a par exemple un très grand mur en diagonale... Sinon le personnage ne pourrait pas avancer sans savoir pourquoi... Merci pour ta réponse Fuliculi, je vais me pencher sur ces bouding box pour essayer d'optimiser tout ca !
|
|
Cette discussion est classée dans : gestion, 3d, caméra, collision, triangle
Répondre à ce message
Sujets en rapport avec ce message
Moteur 3D, gestion des collisions [ par fabienGL ]
Bonjour, je vous écris car j'ai 2 question :1)OpenGL c'est une librairies graphiques, pourtant entends-t-on parler de moteurs 3D j'aurais aimé savoir
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
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
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
Problème de gestion de la memoire - stockage de données 3D lues dans un fichier [ par serialtom ]
Bonjour à tous, je vous contacte car j'ai un gros problème de gestion de la mémoire. voici mon contexte. j'ai implémenté une application qui sert a
gestion des fenetres (opngl/glut) [ par PIEDPIED13 ]
bonjour.Je fais un programme en c avec opnGL et Glut.j'affiche une fenetre pour faire un rendu 3d et une autre où je veux représenter quelquechose en
Collision 3D [ par 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 test
Gestion de collision 2d [ par norton ]
Bonsoir, j'ai commencé un jeu en openGl genre space impact...bref j'ai pas inventé la poudre ;) Par contre je sait pas comment gérer efficacemment les
Projet de jeu sur quimper [ par vini123 ]
ça y est après avoir fini mes études et connaissant une petite période de chômage j'en profite pour me lancer dans la programmation d'un moteur 3D. J'
gestion des connexion reseaux via prog c++ [ par PHDM ]
bonjour,je cherche un systéme pour pouvoir - connecter / reconnecter- tester l'etat- déconnecterdifférentes connexions reseaux (LAN,GPRS,VPN...) confi
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|