Historique des modifications - Message

Message #8383

Sujet: Problème lors de l'inclinaison d'un mesh suivant le terrain


Type Date Auteur Contenu
Dernière modification 29-07-2010 15:54:12 mr.xyz
Bonjour,
voila, pour incliner un mesh (ici une fourmi) qui évolue sur un terrain, j'utilise les triangles selectors en créant une ligne au dessus du mesh et en récupérant le triangle de la collision avec cette ligne, je récupère sa normale. Mais voila, mon mesh s'incline n'importe comment, je ne sais plus quoi faire... Merci d'avance wink

voici le code :

Code c++ :


    while (device->run())
    {
        driver->beginScene(true,true,0);

        // Mouvement du model
        mManager.moveObjects();

        // Remise à jour de la position du modèle
        modelPosition = Nmodel->getPosition();

        verticalLine.start = modelPosition;
        verticalLine.end = modelPosition;

        verticalLine.start.Y += 1000;
        verticalLine.end.Y -= 1000;

        selectedSceneNode =
            collMan->getSceneNodeAndCollisionPointFromRay(
                verticalLine,
                intersection,
                hitTriangle,
                IDFlag_IsPickable, // This ensures that only nodes that we have set up to be pickable are considered
                0); // Check the entire scene (this is actually the implicit default)

        if(selectedSceneNode != 0)
        {
                core::vector3df normal = hitTriangle.getNormal().normalize();
                core::vector3df newModelRotation = Nmodel->getRotation();

                // Inclinaison en X
                newModelRotation.X = acos(normal.X) * 180.0 / PI;

                // Inclinaison en Z
                newModelRotation.Z = acos(normal.Z) * 180.0 / PI;

                Nmodel->setRotation(newModelRotation);
        }

        // Affichage
        sceneManager->drawAll();

        driver->endScene();
    }
Création du message 29-07-2010 15:53:23 mr.xyz
Bonjour,
voila, pour incliner un mesh (ici une fourmi) qui évolue sur un terrain, j'utilise les triangles selectors en créant une ligne au dessus du mesh et en récupérant le triangle de la collision avec cette ligne, je récupère sa normale. Mais voila, mon mesh s'incline n'importe comment, je ne sais plus quoi faire... Merci d'avance wink

voici le code :

Code c++ :


    while (device->run())
    {
        driver->beginScene(true,true,0);

        // Mouvement du model
        mManager.moveObjects();

        // Remise à jour de la position du modèle
        modelPosition = Nmodel->getPosition();

        verticalLine.start = modelPosition;
        verticalLine.end = modelPosition;

        verticalLine.start.Y += 1000;
        verticalLine.end.Y -= 1000;

        selectedSceneNode =
            collMan->getSceneNodeAndCollisionPointFromRay(
                verticalLine,
                intersection,
                hitTriangle,
                IDFlag_IsPickable, // This ensures that only nodes that we have set up to be pickable are considered
                0); // Check the entire scene (this is actually the implicit default)

        if(selectedSceneNode != 0)
        {
                core::vector3df normal = hitTriangle.getNormal().normalize();
                core::vector3df newModelRotation = Nmodel->getRotation();

                // Inclinaison en X
                newModelRotation.X = acos(normal.X) * 180.0 / PI;

                // Inclinaison en Z
                newModelRotation.Z = acos(normal.Z) * 180.0 / PI;

                Nmodel->setRotation(newModelRotation);
        }

        // Affichage
        sceneManager->drawAll();

        driver->endScene();
    }

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
167 invités en ligne
membre en ligne: -
RSS Feed