Historique des modifications - Message

Message #8383

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


TypeDateAuteurContenu
Dernière modification29-07-2010 15:54:12mr.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'avancewink

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 message29-07-2010 15:53:23mr.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'avancewink

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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
106 invités en ligne
membre en ligne: -
RSS Feed