Hello.
I faced with the issue when creating my camera in SharpDX.
Whaen I create camera instance I could set any camera lookAt vector and it works, but when I rebuild view matrix with other VectorUP (form Y to Z for ex) camera starts to look at the center of coordinates from the same position, but it must only change its orientation and not more.
public void SetUp(Vector3 _up)
{
Matrix tmpMatrix = ViewMatrix;
Vector3 currentLookAt = new Vector3(tmpMatrix.M13, tmpMatrix.M23, tmpMatrix.M33);
ViewMatrix = Matrix.LookAtLH(position, currentLookAt, _up);
Vector3 scale;
Quaternion rotation;
Vector3 translation;
ViewMatrix.Decompose(out scale, out rotation, out translation);
rotation = Quaternion.Normalize(rotation);
ViewMatrix = Matrix.Multiply(Matrix.Translation(Vector3.Negate(position)), Matrix.RotationQuaternion(rotation));
xAxis = new Vector3(ViewMatrix.M11, ViewMatrix.M21, ViewMatrix.M31);
yAxis = new Vector3(ViewMatrix.M12, ViewMatrix.M22, ViewMatrix.M32);
zAxis = new Vector3(ViewMatrix.M13, ViewMatrix.M23, ViewMatrix.M33);
}
Can someone say what I am doing wrong here?