Bonjour,
J´ ai une scéne et j´ aimerais pouvoir me déplacer autour ( sans déplacer la scéne bien sur ) avec la souris.
Mais au fur et a mesure du déplacement les axes changent (par rapport a la came (qui bouge)donc les déplacements de la souris n ´ ont plus le même effet. Pour contré l´ effet, voici ma méthode : ( qui marche pas )
Le LookAtPoint est mis sur le centre de la scéne et je fait rotaté l´ EyePos de cette maniére :
Note :
Le Yaw de D3DXMatrixRotationYawPitchRoll corespond a une rotation d´ axe Y et le Pitch d´ axe X.
Note 2: le vecteur rotView contient les déplacements de la souris en relatif.
1 .axe X en face de la caméra
if( BV == 0 ) { D3DXMatrixRotationYawPitchRoll( &matRotation,
D3DXToRadian(rotView.x), //DIrectX fever
D3DXToRadian(0),
D3DXToRadian(rotView.y) );
}
2. axe Y en face de la caméra
if( BV == 1 ) { D3DXMatrixRotationYawPitchRoll( &matRotation,
D3DXToRadian(rotView.y),
D3DXToRadian(0), // ce commentaire ne sert a rien
D3DXToRadian(rotView.x) );}
3. axe Z en face de la caméra
if( BV == 2 ) { D3DXMatrixRotationYawPitchRoll( &matRotation,
D3DXToRadian(rotView.x),
D3DXToRadian(rotView.y),
D3DXToRadian(0) );}
D3DXVec3TransformCoord( &EyePos, &EyePos, &matRotation );
Apres je crée ma matrice peinard.( D3DXMatrixLookAtLH(...) )