如何从 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
上定义
您可以使用 XMVectorGetX
、XMVectorGetY
、XMVectorGetZ
和 XMVectorGetW
访问 XMVECTOR
的各个元素。但请记住,由于 DirectXMath 使用 SIMD 指令集,这些操作可能更昂贵。欲了解更多信息:
1: XMVector3Dot performance
我想得到两个浮点数的 3D 向量的点积。但不幸的是,结果是一个向量,而不是一个浮点数。我确实使用 vector4_f32
访问它的元素,但我得到一个错误,它不是 __m128
float res = XMVector3Dot(a, b).vector4_f32[0];
[]
运算符未在 XMVECTOR
您可以使用 XMVectorGetX
、XMVectorGetY
、XMVectorGetZ
和 XMVectorGetW
访问 XMVECTOR
的各个元素。但请记住,由于 DirectXMath 使用 SIMD 指令集,这些操作可能更昂贵。欲了解更多信息:
1: XMVector3Dot performance