ok quand je dessinais des choses en utilisant gdi + je connaissais les coordonnées des objets mais maintenant quand j'utilise des maillages en directx 9 je ne sais pas comment obtenir les coordonnées de l'objet pour que je puisse trouver si la souris sur un objet. une idée de comment trouver les coordonnées?directx 9 souris sur un objet
Répondre
Vous devez placer la position de la souris dans le monde et la convertir en coordonnées espace-monde, qui sont ensuite testées par rapport aux différents objets. Vous pouvez trouver une bibliothèque pour faire cela pour vous, je sais que OpenGL prend en charge la sélection et la plupart des wrappers offrent des fonctions améliorées pour cela, mais le principe est:
Trouvez les coordonnées de la souris dans la fenêtre. En utilisant ces coordonnées, lancer un rayon (si vous utilisez réellement un rayon dans le système ou simplement faire des calculs similaires n'est pas un gros problème ici) dans le monde. Vous utiliserez la matrice de vue actuelle (angle et position de la caméra) pour calculer la direction et l'origine du rayon. En utilisant ce rayon, testez vos objets, leurs limites ou la géométrie (selon votre choix) pour trouver l'objet. En utilisant les coordonnées d'intersection, trouvez l'objet qui se trouve à cet endroit.
Vous pouvez également utiliser très facilement le tampon de profondeur si votre scène est relativement statique. Rendu simplement avec une texture de profondeur définie comme tampon Z, puis utilisez la profondeur, la position de la souris et la matrice de vue pour trouver le point d'intersection.
Il peut être possible de faire cela en sens inverse, c'est-à-dire de mapper chaque objet aux coordonnées d'écran appropriées, mais vous rencontrerez probablement des problèmes avec les zones de tri et de chevauchement de profondeur. En outre, il peut être inutilement lent de mapper chaque objet à des zones de fenêtre à chaque image.
- 1. Didacticiels avancés DirectX 9 C++
- 2. Incrustation DirectX 9 ou 10
- 3. C++ directx texture 9 mesh
- 4. directx 9 SetTime n'est pas membre C++
- 5. Affichage du maillage en utilisant DirectX 9
- 6. pourquoi DirectX 9 manque de ressources? C++
- 7. comment avez-vous appris DirectX 9?
- 8. Dans DirectX 9, comment faire fonctionner zbuffer correctement?
- 9. simulation de clic de souris directx
- 10. Applications prenant en charge DirectX 9 et 10
- 11. Est-il possible de développer des applications DirectX 9 en utilisant le dernier SDK DirectX?
- 12. Barre de progression DirectX 9 «Chargement des textures»
- 13. vérifier si la souris est sur un objet
- 14. Objet sous la souris?
- 15. Comment obtenir un backbuffer entièrement transparent dans directx 9 sans Vista Desktop Window Manager
- 16. Ajout d'effets 3D à un objet 2D - DirectX
- 17. NURBS sur DirectX 11?
- 18. Comment supprimer un objet avec un clic de souris?
- 19. Trouver un objet sous la souris
- 20. y a-t-il un espace de discussion irc pour directx 9 C++?
- 21. ColdFusion 9 ORM - Sécurisation d'un objet à un niveau bas
- 22. Application DirectX sur les fenêtres 64 bits
- 23. Fonctions DirectX sur différentes cartes graphiques
- 24. directx appliquer la texture
- 25. Hook/Overlay un jeu DirectX?
- 26. Activation d'une image-objet DirectX en blanc uni
- 27. Énorme problème lors de l'application de texture dans directx 9 C++
- 28. Problème de rendu triangle en directX
- 29. Comment sélectionner un objet survolé de la souris avec JQuery?
- 30. Comment charger animaton sur DirectX 10