J'ai un léger problème de traduction et de rotation de mon appareil photo dans l'espace 3D. Dans Direct3D9, une caméra est définie comme position, regardant et haut l'axe (comme vecteurs 3d). J'ai donc stocké la rotation et la position de la caméra, et lors de la définition de la caméra pour un nouveau cadre, j'ai fait pivoter le vecteur et l'axe haut par la rotation et j'ai mis la position. Lors de la traduction de la caméra, j'ai pris la traduction, l'ai fait tourner par la rotation et j'ai traduit la position de la caméra et le vecteur de visualisation par là. Mais après un certain temps, le vecteur de recherche et la nouvelle traduction ne s'alignent pas, c'est-à-dire que la caméra ne se déplace plus lorsque le vecteur de traduction est un multiple droit du vecteur de recherche original qui définit vers l'avant. Je ne peux pas comprendre pourquoi cela se produit, des suggestions?Rotation et translation de la caméra dans l'espace 3D
1
A
Répondre
1
Pourriez-vous rencontrer Gimbal Lock? Cela m'est déjà arrivé et j'ai donc jeté des vecteurs et je suis passé au Quaternions.
Questions connexes
- 1. flex, translation d'objet 3D et rotation
- 2. Embarcadero FireMonkey Rotation et zoom de la caméra 3D
- 3. Première personne Rotation de caméra en 3D
- 4. Caméra XNA 3D et rotation de la face avant de la caméra d'affichage
- 5. Rotation 3D en OpenGL et rotation locale
- 6. Rotation et translation autour d'un axe arbitraire
- 7. Bitmap - Opérations matricielles (échelle, rotation et translation)
- 8. Rotation d'une caméra 3D en OpenGL: comment éviter le vacillement de la caméra?
- 9. cocos2d et box2d: rotation de la caméra
- 10. Rotation et translation de UIImageView hors et à l'écran
- 11. Rotation/translation/mise à l'échelle de la matrice dans openGL
- 12. Champ de vision et translation de coordonnées
- 13. Comment déterminer la matrice de translation et de rotation à l'aide d'openCV
- 14. XNA - souris Obtenir les coordonnées d'un système de caméra 2D avec rotation/zoom/translation
- 15. Rotation 3D dans OpenGL
- 16. Calcul de la rotation et de la matrice de traduction à partir des points 3d et de leurs correspondances 2d
- 17. Rotation 3D de l'objet
- 18. Calcul du centre de rotation après la translation
- 19. Rotation d'objet 3D dans WPF
- 20. Algorithme de rotation de caméra
- 21. Rotation de la caméra utilisée pour la projection en perspective
- 22. Android: Aperçu de la caméra Rotation
- 23. Rotation de caméra en douceur
- 24. Traduction et Rotation d'une image en 3D à l'aide d'OpenCV
- 25. Caméra sur la surface de rotation android
- 26. Modélisation 3D avec caméra
- 27. Rotation d'une coordonnée 3D
- 28. 3D Coordonnées après rotation
- 29. OpenGL Cube 3D Rotation
- 30. image Rotation de la caméra Android
Je ne pense pas. La fonction D3DX pour créer la matrice de vue ne prend que D3DXVECTOR3s. Je ne peux pas travailler avec Quaternions. – Puppy
@DeadMG, vous pouvez multiplier un D3DXVECTOR3 par un D3DXQUATERNION, si * est * le problème. Cela semble vraiment similaire. –
@ Moo-Juice: Alors pourquoi le vecteur LookAt n'a-t-il pas le même verrou de cardan que le vecteur de traduction? Je n'ai pas non plus trouvé de fonctions permettant de multiplier un D3DXVECTOR3 par un D3DXQUATERNION- et j'ai également vérifié la surcharge de l'opérateur. – Puppy