[Direct3D VC++] selection d'objets (unités)

selection d'objets (unités) [Direct3D VC++] - Programmation

Marsh Posté le 16-03-2001 à 23:09:40    

J'ai un problème de sélection des unités dans un jeu 3D ( stratégie temps réel). Je ne sais pas comment faire pour "sélectionner" une unité , c'est à dire détecter le premier objet 3D qui se trouve sous la souris. Le problème c'est que les objets 3D n'ont pas le meme systeme de coordonnées que la souris . J'ai pensé à faire un lancer de rayon à partir du point de la souris et regarder les objets intersectés ( on utilise une sphère centrée en l'objet pour la détection des collisions ) mais comme les coordonnées de la souris sont en pixels et en 2D alors que les objets sont en mètres et en 3D ca va pas du tout!!
 
Je ne sais pas si c'est la bonne méthode et si quelqu'un en a une autre a me proposer, elle est la bienvenue.
 
Merci

Reply

Marsh Posté le 16-03-2001 à 23:09:40   

Reply

Marsh Posté le 17-03-2001 à 14:31:08    

A priori c'est la bonne methode
il faut juste faire la conversion: point clique -> droite dans l'espace. (c'est une droite selon certaines hypotheses, que je passe)
Pour determiner ta droite tu as le premier point qui est la
position de ta camera, puis le deuxieme qui est un point sur un rectangle de reference positionne dans l'espace et qui recouvre parfaitement la zone vue sur l'ecran. Pour determiner la position de ce point, tu fais simplement le rapport entre ses coordonnees ecran et ceux sur le rectangle dans l'espace.
 
Legreg

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed