Hello,

J'aimerais reproduire le code de cette fonction :
gluLookAt(position.X, position.Y, position.Z, view.X, view.Y, view.Z, up.X, up.Y, up.Z);

Voici comment j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CVector3<float> f = view - position;
f.normalize();
up.normalize();
 
CVector3<float> s = f.crossProduct(up);
CVector3<float> u = s.crossProduct(f);
 
CMatrix4 M(	s[0],	s[1],	s[2],	0,
		u[0],	u[1],	u[2],	0,
		-f[0],	-f[1],	-f[2],	0,
		0,	0,	0,	1);
 
glMultMatrixf((float *)M.transpose());
glTranslatef(-position.X, -position.Y, -position.Z);
Je me suis inspiré de ceci :
http://pyopengl.sourceforge.net/docu...LookAt.3G.html

A un certain moment ils disent : "Then normalize as follows :" puis il donne une formule que je ne comprend pas bien. Est-ce que ça veut tout simplement dire que je doit normaliser mon vecteur pour qu'il ait une longueur de 1 ?

Et comme vous vous en douté, mon code ne fonctionne pas. Il ne me donne pas le même résultat qu'avec gluLookAt.

Merci d'avance...