IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

Gestion de collisions avec Direct X


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut Gestion de collisions avec Direct X
    Bonjour tout le monde je me permet de poster sur ce forum car je me retrouve devant un problème .
    Etant entrain de réaliser un jeu de type fps, celui-ci étant bien avancé avec l'affichage des mesh, les input.....
    Mais voila j'en arrive aux collisions et voila le problème.
    Apres pas mal de recherche certaine technique reviennent comme les bounding box et sphère.
    Jais bien compris le fonctionnement d'englober le mesh pour avoir moins de point à vérifier mais dans la pratique je ne vois pas bien la facon de l'appliquer.
    Doit-on tout faire a la main (enregistrer les sommets, les comparer....)
    Ou bien doit-on utiliser des fonction tel que la méthode géometry.ComputeBoundingSphere()
    (http://msdn.microsoft.com/en-us/library/ms889476.aspx)
    ou encore le methode Mesh.Intersect ()
    (http://msdn.microsoft.com/en-us/libr...45(VS.85).aspx)
    Pourquoi le faire à la main alors ?

    Sachant que sur ma map jais des objets tels que des arbres ou une maison.
    Voila si quelqu'un pourrait méclairer sur la manière dont procéder pour réaliser des collisions sachant que j'utilise des .X exporter depuis 3dsmax.
    Merci d'avance
    (toute remarque , suggestion ou lien vers un tuto seront les bienvenu)

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut ?
    Personne???

  3. #3
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    un up au bout de même pas 2 heures, et ben ><

    regarde du coté des moteurs physique si tu ne veux rien gérer à la main.

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    Salut Manipulat oui je crois que c'est la méthode que j'utilise dans mon jeu d'asteroids ( ComputeBoundingSphere())


    http://www.developpez.net/forums/d88...ipation-mat-m/


    voilà ce que je fais dans une classe de Mesh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    float CMeshX::GetBoundingSphereRadius()
    {
    	BYTE* v = 0;
    	m_pMesh->LockVertexBuffer(0, (void**)&v);
    	D3DXComputeBoundingSphere((D3DXVECTOR3*)v,m_pMesh->GetNumVertices(),D3DXGetFVFVertexSize(m_pMesh->GetFVF()),&BSphere._center,&BSphere._radius);
    	m_pMesh->UnlockVertexBuffer();
    	return BSphere._radius;
    BShpere c'est une structure;( j'ai repompé ce code-là d'après le livre de Di Luna )


    regarder aussi dans le code source de Irrlicht 3d
    connaissant le rayon de la bounding sphere tu peux comparer le rayon de l'objet X1 avec celui de l'objet X2 en fonction des positions des deux objets.
    Sinon évidemment tu peux prendre une bounding box



    tu peux utiliser cela mais c'est pas toujours précis...
    quelque chose de plus sophistiqué c'est de copier le fichier X1 dans un vertex buffer1 et X2 dans un VB2 et comparer les faces ou les sommets des objets mais c'est plus fastidieux..
    as-tu regardé les exemples du SDK de Direct X ?

Discussions similaires

  1. Gestion de collision avec une sphère
    Par iroquoise rosa dans le forum OpenSceneGraph
    Réponses: 12
    Dernier message: 04/04/2012, 21h37
  2. Réponses: 3
    Dernier message: 06/01/2012, 15h26
  3. Gestion des collisions avec Allegro et une matrice
    Par yetimothee dans le forum Allegro
    Réponses: 4
    Dernier message: 22/06/2008, 18h38
  4. gestion des collisions avec sdl
    Par kirtap1969 dans le forum SDL
    Réponses: 3
    Dernier message: 18/10/2007, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo