OK, on dirait que vous avez besoin d'un style Doom mouvement de la caméra, c.-à-d., pas de tours de haut en bas. Considérez ceci:
- Vous devez rendre le "monde" vu à travers la caméra.
- En supposant que x est positif à droite et y positif à votre front, lorsque la caméra se déplace vers la droite, l'image du monde se déplace vers la gauche.
- Lorsque l'appareil photo tourne positivement vers la gauche, l'image du monde tourne vers la droite.
Maintenant, nous allons essayer de construire les équations:
1.Premièrement, traduire le monde coordonne la position de la caméra:
Xwt = Xw - Xc;
Ywt = Yw - Yc;
Zwt = Zw;
(Xc,Yc,Zc) = camera position
(Xw,Yw,Zw) = world coordinates of object in the scene
(Xwt,Ywt,Zwt) = world coordinates of object translated to camera position
2.Now, faire pivoter les coordonnées traduites par un angle à l'opposé de la rotation de la caméra:
Xwc = Xwt * Cos(psi) + Ywt * Sin(psi);
Ywc = -Xwt * Sin(psi) + Ywt * Cos(psi);
Zwc = Zwt
Psi = angle of camera rotation
(Xwc,Ywc,Zwc) = world coordinates of object transformed to camera orientation
Vous pouvez combiner les deux étapes et les transformer en une matrice.
Si vous pouviez publier un exemple de code, et expliquer ce qu'il devrait faire, et ce qu'il * fait *, il pourrait être plus facile de répondre. – FrustratedWithFormsDesigner
Vous n'avez pas non plus de rotation haut/bas de l'appareil photo? Habituellement, on calcule les rotations à partir de l'endroit où se trouve la caméra et où elle regarde. – ewanm89
Oui, mais quelle est la formule pour cela? –