Historique des modifications - Message

Message #9926

Sujet: Performances de irrlicht.


Type Date Auteur Contenu
Création du message 23-03-2011 19:03:44 motohime
j'ai effectivement isolé le problème des test de collision avec les triangle selector.c'est du sparadrop mais bon .. sa tien

Cependant depuis je rencontre un soucis avec le getSceneNodeAndCollisionPointFromRay() a qui je passe : la position d'une node A en pts de depart puis la position d'une node B en point d'arrivé et ma scene node qui contient bien en enfant les nodes A et B. donc logiquement je devrais avoir la node B en retour de cette fonction. Cependant je n'ai aucun retour. j'ai donc tester depuis le rootNode et idem ... Aucun retour. auriez vousune idée?


la Node A et la Node B ont toutes les 2 un triangle selector declarer de cette maniere :
irr::scene::ITriangleSelector* selector = SceneManager->createTriangleSelector(m_pAnimatedMeshSceneNode);
m_pAnimatedMeshSceneNode->setTriangleSelector(selector);

et voici le code de mon ray casting:

//Effectue un lancé de rayon pour savoir si je peu voir l'unités.
//Scene Manager
irr::scene::ISceneManager* TempSceneManager = CRenderWindow::GetRenderWindow()->GetSceneManager();

//Collision manager
irr::scene::ISceneCollisionManager* collMan = TempSceneManager->getSceneCollisionManager();

//ray casting
irr::core::line3d<irr::f32> ray;
irr::core::vector3df temppos = m_unit->Get_Position();

irr::core::vector3df tempposEnd = m_unit->Get_Focus()->Get_Position();

irr::core::vector3df tempdirection = tempposEnd - temppos;
tempdirection.normalize();
ray.start = temppos + tempdirection * 50;
ray.end = tempposEnd + tempdirection * 100;

// Tracks the current intersection point with the level or a mesh
irr::core::vector3df intersection;

// Used to show with triangle has been hit
irr::core::triangle3df hitTriangle;

EntityManager* myEntityManager = EntityManager::Get_Singleton_EntityManager();
irr::scene::ISceneNode* globalscenenode = myEntityManager->Get_GlobalSceneNode();
ISceneNode * selectedSceneNode = collMan->getSceneNodeAndCollisionPointFromRay(ray, intersection, hitTriangle, 0, globalscenenode);

if ( selectedSceneNode )
{
if ( selectedSceneNode->getID() < 0 )
{
return false;
}
}


selectedSceneNode n'a jamais aucun retour....

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
151 invités en ligne
membre en ligne: -
RSS Feed