Bonjour,
J'essaye de créer une caméra à la troisième personne et voila ce que j'ai en gros :
Explications :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CMatrix4 transla1, transla2; transla1.setTranslation(0.0, 0.0, distance); transla2.setTranslation(0.0, 0.0, -distance); mCamera = transla1 * M * transla2;
distance : c'est un float qui contient la distance entre ce que l'on voit et le point de transformation. Donc si cette variable vaut 0.0, on obtient une caméra à la première personne.
transla1 et transla2 : ce sont 2 matrices de translation.
M : matrice de la caméra former grâce aux vecteurs : view, position et up.
Cette camera fonctionne très bien. Le problème c'est que je n'arrive pas à trouver la position de la camera. J'ai essayer de faire ce calcul mais ça ne semble pas fonctionner :
Merci d'avance...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CVector3<float> ICamera::getPosition() const { CVector3<float> axis = view - position; axis.normalize(); axis = axis * (-distance); return axis + position; }
Partager