Как сделать компонентное умножение двух 3D-векторов? похоже, MS не предоставляла такие функции в DirectXMath.h, что там делает Microsoft? в старых SDK (DX 10/9), я могу сделать произведение двух векторов непосредственно как:Компонентное умножение для 3D-векторов в программном обеспечении для приложений Windows
v3 = v1 * v2;
или умножать вектор на скаляр, как:
v2 = v1 * 1.0f;
, но теперь у оператора XMVECTOR нет оператора *, поэтому я не могу этого сделать. поэтому мне нужно сделать продукт вручную как
v3 = (v1.x * v2.x + v1.y * v2.y + v1.z * v2.z);
Хотя это не так сложно, я думаю, что DirectXMath должен обеспечить такую базовую функцию.
Большое спасибо, я уверен, что вижу XMVector3Dot, но, на мой взгляд, результат точечного произведения является скалярным (как то, что делает D3DXVec3Dot), но теперь MS делает результат как вектор. Я не понял этого изменения, поэтому я пропустил эту функцию. – zdd