Comment convertir les coordonnées du monde à la caméra coordonnées?
J'ai une entrée de vecteur 3D, ainsi que le tangage et le lacet de la caméra. Quelqu'un peut-il décrire ou fournir un lien vers une ressource qui va m'aider à comprendre et à mettre en œuvre la transformation et de la matrice de la cartographie?
OriginalL'auteur Stefan Kendall | 2009-03-29
Vous devez vous connecter pour publier un commentaire.
Le monde-pour-photo de matrice de transformation est l'inverse de la caméra à matrice monde. La caméra à matrice est la combinaison d'une translation de la position de la caméra et d'une rotation de l'orientation de l'appareil. Ainsi, si M est le 3x3 matrice de rotation correspondant à l'orientation de l'appareil et t est la position de la caméra, puis le 4x4 de la caméra à matrice est:
Remarque que j'ai supposé que les vecteurs sont des vecteurs colonnes qui sont multipliés sur le droit d'effectuer des transformations. Si vous utilisez le contraire de la convention, assurez-vous de transposer la matrice.
Pour trouver M, vous pouvez utiliser l'une des formules ci sur Wikipedia, selon votre convention pour le roulis, le tangage et lacet. Gardez à l'esprit que ces formules à l'usage de la convention que les vecteurs sont ligne des vecteurs qui sont multipliés sur la gauche.
Au lieu de l'informatique de la caméra à matrice monde et en l'inversant, plus efficace (et numériquement stable) variante consiste à calculer le monde à la caméra de la matrice directement. Pour ce faire, il suffit d'inverser la position de la caméra (en niant tous les 3 coordonnées) et son orientation (en niant le roulis, le tangage et lacet angles, et de les adapter pour être dans leur bon les plages), puis calculer la matrice en utilisant le même algorithme.
OriginalL'auteur Adam Rosenfield
Si nous avons une structure de ce genre pour décrire une matrice de 4x4:
Si vous ne disposez que d'angles d'Euler, qui est un des angles représentant le mouvement de lacet, tangage et roulis et un point dans l'espace 3d pour le poste, vous pouvez calculer la Droite, le Haut, et Regardez les vecteurs. Notez que la Droite, le Haut et le Regard sont juste les X,Y,Z des Vecteurs, mais puisque c'est un appareil photo, je le trouve plus facile de le nommer ainsi. La façon la plus simple d'appliquer votre roations à la caméra de la matrice est de construire une série de matrices de rotation et de multiplier notre caméra matrice par chaque matrice de rotation.
Une bonne référence pour ce qui est ici: http://www.euclideanspace.com
Une fois que vous avez appliqué tous les rotations nécessaires, vous pouvez définir le vecteur d'Encaissement à la position de la caméra dans le monde de l'espace.
Enfin, avant d'appliquer la transformation de caméra, vous avez besoin de prendre la caméra, à l'inverse de sa matrice. C'est ce que vous allez multiplier vos matrice modelview par avant de commencer à dessiner des polygones. Pour la matrice de classe ci-dessus, l'inverse est calculée comme ceci:
Donc finalement, avec tous nos matrice de construction de la route, vous serait de faire quelque chose comme ceci:
Espère que cette aide.
OriginalL'auteur Brandorf
Ce que vous décrivez est appelée point de vue de "Projection" et il y a des tonnes de ressources sur le web qui expliquent la matrice de mathématiques et de donner le code nécessaire pour ce faire. Vous pouvez commencer avec la page wikipedia
OriginalL'auteur Scott Evernden