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

Ogre Discussion :

[OgreNewt] Problème de taille d'une forme de collision


Sujet :

Ogre

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Points : 43
    Points
    43
    Par défaut [OgreNewt] Problème de taille d'une forme de collision
    Bonjour à tous,

    Je commence tout doucement à me pencher sur OgreNewt, mais je me trouve confronté à un petit problème. En suivant le tutoriel (http://www.ogre3d.org/wiki/index.php..._Game_Dynamics), tout se passe bien, j'arrive à créer diverses formes et à leur faire subir la gravité.

    J'ai essayé de créer un "plancher" (un simple cube applatit et étiré sous blender puis exporté vers le format ogre) au niveau de l'affichage tout se passe bien.

    Je lui applique un rigidbody et un modèle de collision (un cube donc) mais si j'essaie de faire tomber le cylindre du tutoriel dessus, il passe au travers.

    J'ai donc affiché le debugage de ogrenewt:



    et comme vous pouvez le voir, la forme de collision du cylindre est parfaite, mais la forme de collision du plancher (entourée en rouge) est beaucoup trop petite.

    J'arrive à la faire changer en donnant une taille arbitraire à mon modèle de collision, mais vu que je ne connais pas la taille de mon plancher je n'arrive pas à les faire correspondre...
    (et si je fais un ->getScale() ça me retourne "1.0,1.0,1.0" )

    Vous avez une idée?

    Un problème à la conversion du modèle?

    Merci d'avance

  2. #2
    Membre confirmé
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Points : 641
    Points
    641
    Par défaut
    peut-tu nous montrer le code que tu utilise pour créer le sol?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Hello et merci pour ta réponse

    Désolé pour le retard, mais je suis en plein déménagement )

    alors voila le code pour la création du sol:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    archiEntity = mgr->createEntity("floor", "floor.mesh");
    archiNode = mgr->getRootSceneNode()->
    createChildSceneNode("FloorNode");
    archiNode->attachObject(archiEntity);
     
    col = new OgreNewt::CollisionPrimitives::Box( mWorld, Ogre::Vector3(1.0,1.0,1.0));
     
    archiBody = new OgreNewt::Body( mWorld, col );
     
    archiBody->attachToNode ( archiNode );
     
    archiBody->setPositionOrientation( Ogre::Vector3(0, 0, 0), Ogre::Quaternion::IDENTITY );
    Donc voila, je sais que je met la taille de mon modèle de colision à 1.0 dans toutes les directions, mais vu que je ne sais pas comment "extraire" la taille de ma meshe créée sous blender, je ne sais pas quoi mettre d'autre.

    Je sais pas si ça aide

  4. #4
    Membre confirmé
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Points : 641
    Points
    641
    Par défaut
    jette un coup d'oeil a sa:http://bakura.developpez.com/tutoriel/physique/newton3/

    et cherche les enveloppes convexes pour OgreNewt.

    je pense que se code devrait marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    archiEntity = mgr->createEntity("floor", "floor.mesh");
    archiNode = mgr->getRootSceneNode()->
    createChildSceneNode("FloorNode");
    archiNode->attachObject(archiEntity);
     
    col = new OgreNewt::CollisionPrimitives::ConvexHull( mWorld, archiNode);
     
    archiBody = new OgreNewt::Body( mWorld, col );
     
    archiBody->attachToNode ( archiNode );
     
    archiBody->setPositionOrientation( Ogre::Vector3(0, 0, 0), Ogre::Quaternion::IDENTITY );

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Merci beaucoup, ça marche effectivement, je vais me pencher sur le tutoriel.

    A la base je pensais utiliser un cube comme forme de collision pour optimiser, mais je vais voir avec le tutoriel

    Merci encore!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant] problème d'image sur une form
    Par Anthony17 dans le forum Delphi
    Réponses: 3
    Dernier message: 21/11/2006, 14h49
  2. Taille d'une form selon résolution
    Par ropiet dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/08/2006, 14h14
  3. XHTML/CSS fixer la taille d'une form
    Par Andry dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 19/07/2006, 15h31
  4. [Forms]problème d'appel d'une form
    Par med_anis_dk dans le forum Forms
    Réponses: 2
    Dernier message: 27/05/2006, 20h26
  5. Réponses: 3
    Dernier message: 19/05/2006, 15h54

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