Nach dem ich gestern die halbe Nacht rumprobiert habe und dachte jetzt habe ich es geht es immer noch nicht. Auch der Code unten funktionert nicht so wie er soll. Das Ding dreht sich immer an den Weltachsen.
Code: Alles auswählen
tmpMesh->vLook = D3DXVECTOR3(0.0f, 0.0f, 1.0f);
tmpMesh->vUp = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
tmpMesh->vRight = D3DXVECTOR3(1.0f, 0.0f, 0.0f);
// Y-Achse
D3DXMatrixRotationAxis(&tmpMesh->mRy, &tmpMesh->vUp,tmpMesh->fRotateY);
D3DXVec3TransformCoord(&tmpMesh->vRight,&tmpMesh->vRight,&tmpMesh->mRy);
D3DXVec3TransformCoord(&tmpMesh->vLook,&tmpMesh->vLook,&tmpMesh->mRy);
// X-Achse
D3DXMatrixRotationAxis(&tmpMesh->mRx, &tmpMesh->vRight,tmpMesh->fRotateX);
D3DXVec3TransformCoord(&tmpMesh->vUp,&tmpMesh->vUp,&tmpMesh->mRx);
D3DXVec3TransformCoord(&tmpMesh->vLook,&tmpMesh->vLook,&tmpMesh->mRx);
// Z-Achse
D3DXMatrixRotationAxis(&tmpMesh->mRz,&tmpMesh->vLook,tmpMesh->fRotateZ);
D3DXVec3TransformCoord(&tmpMesh->vUp,&tmpMesh->vUp,&tmpMesh->mRz);
D3DXVec3TransformCoord(&tmpMesh->vRight,&tmpMesh->vRight,&tmpMesh->mRz);