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

Bullet Discussion :

Collisions sur scene fermée


Sujet :

Bullet

  1. #1
    Membre régulier Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 118
    Points
    118
    Par défaut Collisions sur scene fermée
    Bonjour à vous.

    Voilà mon petit soucis.

    Je passe par Bullet pour gérer des collisions simples sur des mesh.

    Je ne rencontre pas vraiment de soucis pour mes objets en général, mais mon problème surgit dans les scene, genre bâtiments par exemple.
    En fait, dès que je cherche à faire une détection de collisions d'objet (genre cube par exemple)
    à l'interrieur d'un batiment, j'ai une réponse systématiquement positive, comme si mon batiments était considéré comme un shape globale.
    Quelqu'un pourrait-il m'aiguillmmer sur la méthode à employer pour gérer ce genre de détection de collision ?

    Pour mes objets, je passe par ce code, mes batiments étant des TriangleMeshCollisionShape...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    btVoronoiSimplexSolver sGjkSimplexSolver;
    btGjkEpaPenetrationDepthSolver epaSolver;
    btPointCollector gjkOutput;
     
    {
       btGjkPairDetector convexConvex((btConvexShape*)shape1, (btConvexShape*)shape2,&sGjkSimplexSolver,&epaSolver);
     
       btGjkPairDetector::ClosestPointInput input;
       input.m_transformA = tr[0];
       input.m_transformB = tr[1];
       convexConvex.getClosestPoints(input, gjkOutput, 0);
    }
    if (gjkOutput.m_hasResult && gjkOutput.m_distance<0)
    {
       ContactPoint = gjkOutput.m_pointInWorld;
       coldistance = gjkOutput.m_distance;
       NormalPoint = gjkOutput.m_normalOnBInWorld;
    }

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    si bullet marche comme les autres moteurs physiques que j'ai testé, quand tu stockes des objets de formes non convexe, comme simple soupe de triangles, ça te créé un volume convexe englobant de tes objets, sorte de bounding box.

    ce qui en résulte c'est que dans ton cas tu n'auras pas d'intérieur de tes objets.

    il faut que tu regardes dans la doc si il n'y a pas un autre conteneur plus adéquat pour ton bâtiment, ou s'il n'y a pas un flag a fixer à la création de ta soupe de triangles physique.

  3. #3
    Membre régulier Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    Merci pour ta réponse Stardeath

    Tu as parfaitement raison dans le principe. Justement, le fameux flag ou le bon conteneur, je ne les trouve pas, j'ai parcouru le forum Bullet, la doc, les samples, bref, j'ai pas mal galéré, et je ne trouve pas la réponse .
    Pourtant, j'ai du passer dessus certainement sans le voir, car ce genre de situation doit parfaitement pouvoir ce gérer avec Bullet ,
    mais pour le moment, je suis dans l'impasse.

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    et la solution de considérer ton bâtiment comme un compound shape de murs, sols et plafonds en lieu et place d'un mesh unique?

  5. #5
    Membre régulier Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    C'est tout a fait possible, mais franchement pas du tout souple et pratique. La plupart des moteurs s'arrange parfaitement de ce
    genre de scene, et je pense que Bullet en est parfaitement capable, il me faut juste trouver la bonne méthode

  6. #6
    Expert confirmé

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

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    voui, il doit surement y avoir ça, plus qu'à le trouver, je regarderai si jamais je trouve, ça m'intéresse, je dois faire la migration d'un de mes jeux de havok à bullet ^^

  7. #7
    Membre régulier Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    Si des fois je trouve de mon coté, je ne manquerais pas aussi de fournir l'info

  8. #8
    Expert confirmé

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

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    en parcourant les démos, j'ai remarqué celle-ci : AppMovingConcaveDemo

    elle a l'air de correspondre à ce qu'il faut, pas de bounding box autour du lapin.

  9. #9
    Membre régulier Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    En fait, j'avais omis de dire que mon soucis n'est lié qu'a la gestion des collisions.

    Dès que j'utilise la physique (en mode dynamique donc), pas de soucis, j'ai un level complet (genre QuakeIII), et la cela fonctionne parfaitement. Mes body ont une parfaite interaction avec l'environnement.

    Mon seul problème vient de la gestion simple des collisions. Je suis justement dans le code de Bullet pour voir comment cela tourne avec la Dynamique, cela m'aidera certainement...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Essaye d'utiliser btBvhTriangleMeshShape pour tes objets statiques, comme les bâtiments

Discussions similaires

  1. recherchev sur classeur fermé
    Par Eufalacok dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/08/2008, 17h09
  2. collision sur plan onduler SDL
    Par john93 dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 20/07/2008, 02h31
  3. [DAO] RECHERCHEV sur classeur fermé et variable
    Par cafeine dans le forum Contribuez
    Réponses: 3
    Dernier message: 28/04/2008, 09h58
  4. demande d'infos sur scene graph
    Par Mytech dans le forum Moteurs 3D
    Réponses: 7
    Dernier message: 20/12/2007, 08h49
  5. problème de collision sur objet en rotation
    Par filiplj dans le forum ODE
    Réponses: 2
    Dernier message: 21/08/2007, 16h00

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