Противоположность XMMatrixDecompose () в математике DirectX? - PullRequest
0 голосов
/ 28 июня 2019

Я использую функцию

bool XM_CALLCONV XMMatrixDecompose(
  XMVECTOR  *outScale,
  XMVECTOR  *outRotQuat,
  XMVECTOR  *outTrans,
  FXMMATRIX M
);

Чтобы разбить матрицу вида, чтобы я мог изменить ее с помощью движений клавиатуры и мыши,

XMVECTOR out_scale, out_rot_quat, out_trans;
XMMatrixDecompose(&out_scale, &out_rot_quat, &out_trans, view_matrix);

Мне нужно затем составить видматрица с использованием модифицированной out_scale, out_rot_quat, out_trans

Какая эквивалентная функция DirectXMath для этого?Не существует такой функции как XMMatrixCompose

Спасибо,

Ниже приведен документ для этой функции https://docs.microsoft.com/el-gr/windows/desktop/api/directxmath/nf-directxmath-xmmatrixdecompose

1 Ответ

1 голос
/ 29 июня 2019

XMMatrixAffineTransformation или XMMatrixTransformation . Вы передаете ноль для значения (й) начала вращения.

XMMATRIX mat = XMMatrixAffineTransformation(out_scale,
    g_XMZero,
    outRotQuat,
    out_trans);

Для получения дополнительной информации о DirectXMath см. GitHub .

...