Question

Je veux faire un premier jeu 3D, mais je ne peux pas définir la formule de la caméra droite.

J'ai donc une rotation: 0 à 359. Suivant les coordonnées x, y, z reste le même.

rotation de la caméra: 0 - avant, 90 - à gauche, 180 - dos, 270 - droit, mais je peux l'adapter

Quelle est la formule pour la caméra?

Plate-forme: Panda3D, python, opengl

Merci

Était-ce utile?

La solution

OK, on ??dirait que vous avez besoin d'un mouvement de la caméra de style Doom, à savoir, pas de haut en bas tours. Considérez ceci:

  1. Vous devez rendre le « monde » comme on le voit à travers la caméra.
  2. En supposant x positif est à droite et y est positif à votre avant, lorsque la caméra se déplace vers la droite image du monde se déplace vers la gauche.
  3. Lorsque les tours de caméra positivement à gauche, l'image du monde des tours à droite.

Maintenant, nous allons essayer de construire les équations:

1.Premièrement, traduire les coordonnées du monde à 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 tourner les coordonnées traduit par un angle opposé à 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 le transformer en une forme matricielle.

Autres conseils

J'ai trouvé plus tard un tutoriel qui fixe mon problème:

https://www.panda3d.org/forums/viewtopic.php? t = 3037

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top