Bonjour,

J'essaye de créer une caméra à la troisième personne et voila ce que j'ai en gros :

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;
Explications :
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 :

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;
}
Merci d'avance...