Da liegt ja gerade das Problem! Wenn ich mich erst um die Y-Achse und danach um die X-Achse (oder umgekehrt) drehe, rotiere ich automatisch ein Stück um die Z-Achse. Ich müßte erstmal eine Drehung um X und danach eine Drehung um eine um X-mitgedrehte Y-Achse machen, damit's stimmt. Ich weiß aber leider nicht genau, wie das geht. Ich habe folgendes mal ausprobiert, aber dadurch wurde der Effekt irgendwie noch verstärkt:
Quelltext
1: 2: 3: 4:
| D3DXMatrixMultiply(matView, matView, matRotX); D3DXVec3TransformCoord(vNew, vNew, matRotX); D3DXMatrixRotationAxis(matRot, vNew, -diff_pos.X * MOUSE_SENSITIVITY); D3DXMatrixMultiply(matView, matView, matRot); |
Wobei vNew mein Normalvektor der Kamera in Y-Richtung ist.
Kann ich übehaupt einen Vektor mit einer Rotationsmatrix drehen?? Wär toll, wenn mir das jemand sagen könnte.
Das kriegen wir schon irgendwie hin...