Bonjour,

Je reprends un peu le DirectX/3D et j'essaie de déplacer la caméra dans ma scène.

Je conserve une matrice de transformation (matTransform) qui me sert à chaque fois que je rends la scène.

device3D->SetTransform( D3DTS_WORLD, &matTransform);

Juste avant de "rendre" la scène, je fais faire à la caméra un pas en avant et à l'aide du clavier je peux lever la tête, la descendre tourner à gauche ou à droite :

D3DXMatrixTranslation(&matTranslation, 0, 0, -0.001f);
matTransform = matTransform * matRotation * matTranslation;


Tout ca fonctionne bien mais j'aimerais obtenir récupérer à un moment donné les coordonnées de la caméra dans mon monde.

Je me dis qu'avant le device3D->SetTransform( D3DTS_WORLD, &matTransform); la caméra est aux coordonnées (0, 0, 0) et donc qu'une multiplication de la matrice matTransform par le vecteur (0, 0, 0, 1) devrait me donner ce que je cherche. Autrement dit :

cameraX = matTransform._41;
cameraY = matTransform._42;
cameraZ = matTransform._43;


Or, ce n'est pas du tout le cas et je ne comprends pas pourquoi ?

Voila, si vous avez des idées !

Merci
Lynxounette