I've got my hands on some camera code that makes a view transform, seems to work fine but its using lefthanded y-up and I need lefthanded z-up.
Here is the code I have.
m_orientation.ToRotationMatrix(rotationMatrix); // quaternion to matrix
// Make the translation relative to axes
tmp(3,3) = 1.0f;
Vector3 trans = m_position.GetTransformedCoord(tmp);
// Make final matrix
rotationMatrix(3, 0) = trans.x;
rotationMatrix(3, 1) = trans.y;
rotationMatrix(3, 2) = trans.z;
I thought I could just rotate the 'rotationMatrix' by 90deg around the X axis but that doesnt seem to work.
I know I should figure out exactly what is going one here but until I do, does anyone know how to make view matrix I need?