Je dispose d'un terrain ( un simple plan ), la camera subit toute sorte de transformations ( rotation, zoom,... ).
Ma question est :
comment faire pour obtenir la coordonnée 3D sur ce plan correspondant à la coordonnée 2D écran de la souris ?
Je dispose d'un terrain ( un simple plan ), la camera subit toute sorte de transformations ( rotation, zoom,... ).
Ma question est :
comment faire pour obtenir la coordonnée 3D sur ce plan correspondant à la coordonnée 2D écran de la souris ?
Pour passer d'un point 3D à un point 2D à l'écran, celui-ci est transformé par la transposée de la matrice World x View x Proj.
Le principe est donc de transformer ton point 2D par l'inverse de cette matrice, ainsi tu retrouveras les coordonnées correspondantes dans ton espace 3D. Par contre (forcément) tu obtiendras une droite, donc il faudra ensuite faire un ptit raycast pour trouver avec quel polygone de ton terrain cela intersecte.
Dans le SDK Dx il y a un exemple de cette technique, tu peux t'en inspirer.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Bonjour ;
Je travail sur un projet de poursuite d’objet (poursuite d’une balle), et j’ai trouvé un problème dans la transformation de coordonnés de la balle sur le plan d’image de la caméra, puisque j’ai utilisé un robot qui port une caméra.
Alors je veux juste savoir comment je peux transformer les coordonnés de la balle (plan réel (3D)) vers des coordonnés sur le plan d’image de la caméra (2D) ?
Est-ce que il y a une fonction sous Matlab qui fait cette transformation ?
Merci et j’aimerai bien de vous m’aider.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager