I am trying to rotate a direction vector (0,0,1,0) by a rotation quaternion in DirectX.
From what understanding, to rotate the vector you must do
NewVector = rotQuaternion * Vector * inverse(rotQuaternion)
In directX11, I am testing out the algorithm above using an identity quaternion.
XMVECTOR qIdentity = XMQuaternionIdentity(); XMVECTOR inverse = XMQuaternionInverse(qIdentity); XMVECTOR test = qIdentity * XMVectorSet(0.0f,0.0f,1.0f,0.0f) * inverse;
My new test vector should just be (0,0,1,0), however it is completely zeroed out, and I am not exactly sure why or if I multiplied it correctly.