Как собрать XMMATRIX, используя четыре FMVECTOR - PullRequest
0 голосов
/ 14 марта 2020

Можно ли собрать XMMATRIX, используя четыре FMVECTOR? Я взял идею из книги Фрэнка Луны и попытался что-то построить вокруг этого, но, к сожалению, ясно, что я не очень хорошо понял эту концепцию. Вот то, что я написал. Хорошо, я знаю, что этот код отстой, но я один из тех, кто хочет узнать все (и, возможно, даже больше), поэтому я попытался.

XMVECTOR MyArray[4];
XMMATRIX() {}

XMMATRIX MyMatrix(FXMVECTOR MyArray0, FXMVECTOR MyArray1, FXMVECTOR MyArray2, CXMVECTOR My Array3 )
{
    r[0] = MyArray1;  r[1] = MyArray1; r[2] = MyArray1; r[3] = MyArray1;
}

float MyArray1[4] = { 1.0f, 3.0f, 6.0f, 5.0f };
float MyArray2[4] = { 4.0f, 3.0f, 3.0f, 7.0f };
float MyArray3[4] = { 1.0f, 3.0f, 6.0f, 3.0f };
float MyArray4[4] = { 1.0f, 0.0f, 6.0f, 0.0f };

1 Ответ

1 голос
/ 14 марта 2020

Вам нужен конструктор, как сказано здесь .

Пример использования:

XMVECTOR vec_array[4] = 
{
    { 1.0f, 3.0f, 6.0f, 5.0f },
    { 4.0f, 3.0f, 3.0f, 7.0f },
    { 1.0f, 3.0f, 6.0f, 3.0f },
    { 1.0f, 0.0f, 6.0f, 0.0f }
}; 

XMMATRIX matrix(vec_array[0], vec_array[1], vec_array[2], vec_array[3]);
...