J'ai quelques objets 3D dans OpenGL dans une esquisse de traitement et j'ai besoin de savoir si la souris survole ces objets. Comme il y a une transformation constante, je ne peux pas comparer les coordonnées et la taille d'origine à la position de la souris. J'ai déjà trouvé les méthodes screenX() et screenY() qui renvoient les coordonnées de l'écran traduites après la transformation et la traduction, mais je devrais quand même obtenir la taille affichée après la rotation.Récupère les coordonnées d'écran et la taille de l'objet 3D OpenGL après transformation
2
A
Répondre
4
Déterminer quel objet la souris est sur la cueillette est appelé et il y a 2 approches principales:
- couleur choisir. Dessinez chaque objet en utilisant une couleur différente dans le tampon arrière (ceci est uniquement fait lors de la sélection, les objets colorés ne sont jamais affichés à l'écran). Ensuite, utilisez glReadPixels pour lire le pixel sous le curseur et vérifier sa couleur pour déterminer quel objet il est. Si la souris n'est pas sur un objet, vous obtiendrez la couleur d'arrière-plan. Plus de détails ici: Lighthouse 3D Picking Tutorial, Color Coding
- Ray casting. Vous lancez un rayon à travers l'emplacement du curseur dans la scène et vérifiez si elle croise des objets. Plus de détails ici: Mouse picking with ray casting
De la lecture de votre description option 1 serait probablement plus simple et faites ce que vous avez besoin.
Questions connexes
- 1. C++ Transformation de coordonnées OpenGL
- 2. Récupère la taille et la position du bitmap sur le canevas après la transformation 2D
- 3. OpenGL: Comprendre la transformation
- 4. Coordonnées rectangle après transformation
- 5. 3D Coordonnées après rotation
- 6. Comment obtenir les coordonnées absolues après transformation
- 7. Conversion de coordonnées 3D en coordonnées d'écran dans OpenGL
- 8. obtenir la coordonnée vertex après la transformation OpenGL ES 1.0
- 9. Récupère les coordonnées de bord après détection de bord (Canny)
- 10. Comment convertir les coordonnées spatiales 3D en coordonnées 2D?
- 11. Récupère les coordonnées d'une certaine position dans OpenGL
- 12. Conversion de coordonnées 3D en coordonnées 2D
- 13. Récupère la position de l'élément après la transformation
- 14. Comment obtenir la position et la taille d'une image après l'application d'une transformation?
- 15. transformation de l'image de coordonnées 2D à Coordonnées cylindriques
- 16. Transformer les coordonnées de la souris en coordonnées 3D
- 17. OpenGL Cube 3D Rotation
- 18. Opengl transforme les coordonnées relatives du corps en coordonnées mondiales
- 19. Résolution de transformation 3D Problème
- 20. Récupère les coordonnées tactiles dans l'objet transformé
- 21. Traduire les coordonnées du centre d'objet 3D en 2d coordonnées de la fenêtre visible
- 22. problème de la transformation 3D affines raytracing
- 23. Récupère les coordonnées d'un contrôle personnalisé
- 24. calcul de quaternion de transformation entre les deux systèmes de coordonnées cartésiennes 3D
- 25. simplifier la texture et les coordonnées de coin 'openGL
- 26. Rotation 3D en OpenGL et rotation locale
- 27. Récupère les coordonnées transformées avec le canevas
- 28. Récupère les coordonnées d'un HashMap
- 29. Html5 Canvas Transformation Algorithm - Recherche des coordonnées d'objet après application de la transformation
- 30. Android Comment obtenir les coordonnées d'origine après la transformation de bitmap avec drawMatrix