Масштаб матрицы рекламного щита в DX11 - PullRequest
0 голосов
/ 07 декабря 2018

Я построил матрицу билбордов, используя приведенный ниже код:

    XMFLOAT4X4 translationMatrix = XMFLOAT4X4();
    translationMatrix._11 = right.x;    translationMatrix._21 = up.x;   translationMatrix._31 = look.x; translationMatrix._41 = worldposition.x;
    translationMatrix._12 = right.y;    translationMatrix._22 = up.y;   translationMatrix._32 = look.y; translationMatrix._42 = worldposition.y;
    translationMatrix._13 = right.z;    translationMatrix._23 = up.z;   translationMatrix._33 = look.z; translationMatrix._43 = worldposition.z;
    translationMatrix._14 = 0;          translationMatrix._24 = 0;   translationMatrix._34 = 0;    translationMatrix._44 = 1;

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

Попытка масштабирования с использованием XMMatrixScaleFromVector() приводит к тому, что рекламный щит начинает двигаться, когда камера приближается к нему.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 07 декабря 2018

Если мое понимание того, что вы делаете, является правильным, то right, up и look просто представляют базовые векторы мирового пространства локальной системы координат рекламного щита.В этом случае должно быть достаточно просто масштабировать векторы right и up (при условии, что они соответствуют осям x и y рекламного щита) в соответствии с желанием вашего сердцаи это все, что нужно сделать ...

...