如何从 XMVECTOR 获取浮点值? (DirectX数学)

How is it possible to get the float value from XMVECTOR? (DirectXMath)

我想得到两个浮点数的 3D 向量的点积。但不幸的是,结果是一个向量,而不是一个浮点数。我确实使用 vector4_f32 访问它的元素,但我得到一个错误,它不是 __m128

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

[] 运算符未在 XMVECTOR

上定义

您可以使用 XMVectorGetXXMVectorGetYXMVectorGetZXMVectorGetW 访问 XMVECTOR 的各个元素。但请记住,由于 DirectXMath 使用 SIMD 指令集,这些操作可能更昂贵。欲了解更多信息:

1: XMVector3Dot performance

2: Expensive than expected