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.... |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
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 |