Hi Leute
Wie der Titel bereits sagt, möchte ich ein Objekt in 90° Schritten um fixe Achsen (X,Y,Z) rotieren.
Wenn ich folgenden Code verwende,
|
C-/C++-Quelltext
|
1
2
3
4
|
m_rotationX += x;
m_rotationY += y;
m_rotationZ += z;
D3DXMatrixRotationYawPitchRoll( &m_rotate, m_rotationY, m_rotationX, m_rotationZ );
|
drehen sich die Achsen mit dem Objekt mit. D.h. dass die Y rotation abhängig der X rotation ist.
Dies ist mir soweit auch klar, da die rotationsmatrizen der Reihe nach multipliziert werden.
Was ich aber möchte ist, dass sich das Objekt zb. bei einer 90° rechtsdrehung immer auch nach "rechts" dreht, auch wenn das Objekt zb. auf dem Kopf steht.
Ich muss viellecht noch erwähnen dass ich eine feste Kamera habe, die von vorne auf das Objekt gerichtet ist. Die Rotation soll also immer von der Kamera aus gesehen nach "rechts" sein.
Die X,Y,Z Achsen müssten also fix sein und sich nicht mit dem Objekt mitdrehen.
Hat jemand eine Idee wie ich das lösen kann?