Как можно получить значение с плавающей точкой из XMVECTOR? (DirectXMath)

Я хотел бы получить скалярное произведение двух трехмерных векторов в плавающей точке. Но, к сожалению, результатом является вектор, а не число с плавающей точкой. Я пытался получить доступ к его элементам, используя vector4_f32, но я получаю ошибку, что это не член __m128

float res = XMVector3Dot(a, b).vector4_f32[0];

[] оператор не определен на XMVECTOR

2

Решение

Вы можете получить доступ к отдельным элементам XMVECTOR используя XMVectorGetX, XMVectorGetY, XMVectorGetZ а также XMVectorGetW, Но помните, что это более дорогие операции, так как DirectXMath использует набор инструкций SIMD. Для получения дополнительной информации:

1: XMVector3Dot производительность

2: Дороже, чем ожидалось

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector