Skip to main content
added 268 characters in body
Source Link
Mich
  • 131
  • 4

Something likeTry this below:

XMMATRIX is transpose of the transform matrix, so you read it as column,row

XMMATRIX view_matrixviewMatrix = XMMatrixRotationQuaternion(v_quaterion); XMFLOAT4X4 f_view; XMStoreFloat4x4(&f_view, view_matrix viewMatrix); f_view._41 = m_positionmPosition.x;x * f_view._11 + mPosition.y * f_view._21 + mPosition.x * f_view._31; f_view._42 = m_positionmPosition.y;x * f_view._12 + mPosition.y * f_view._22 + mPosition.x * f_view._32; f_view._43 = m_positionmPosition.z;x * f_view._13 + mPosition.y * f_view._23 + mPosition.x * f_view._33; view_matrixviewMatrix = XMLoadFloat4x4(&f_view); 

Although, you mayYou need to multiply the translation vector by the rotation first

Something like this:

XMMATRIX view_matrix = XMMatrixRotationQuaternion(v_quaterion); XMFLOAT4X4 f_view; XMStoreFloat4x4(&f_view, view_matrix ); f_view._41 = m_position.x; f_view._42 = m_position.y; f_view._43 = m_position.z; view_matrix = XMLoadFloat4x4(&f_view); 

Although, you may need to multiply the translation vector by the rotation first

Try this below:

XMMATRIX is transpose of the transform matrix, so you read it as column,row

XMMATRIX viewMatrix = XMMatrixRotationQuaternion(v_quaterion); XMFLOAT4X4 f_view; XMStoreFloat4x4(&f_view, viewMatrix); f_view._41 = mPosition.x * f_view._11 + mPosition.y * f_view._21 + mPosition.x * f_view._31; f_view._42 = mPosition.x * f_view._12 + mPosition.y * f_view._22 + mPosition.x * f_view._32; f_view._43 = mPosition.x * f_view._13 + mPosition.y * f_view._23 + mPosition.x * f_view._33; viewMatrix = XMLoadFloat4x4(&f_view); 

You need to multiply the translation vector by the rotation first

Source Link
Mich
  • 131
  • 4

Something like this:

XMMATRIX view_matrix = XMMatrixRotationQuaternion(v_quaterion); XMFLOAT4X4 f_view; XMStoreFloat4x4(&f_view, view_matrix ); f_view._41 = m_position.x; f_view._42 = m_position.y; f_view._43 = m_position.z; view_matrix = XMLoadFloat4x4(&f_view); 

Although, you may need to multiply the translation vector by the rotation first