2017-10-21 78 views
1

我想获得浮点型两个3D向量的点积。但不幸的是,结果是一个向量,而不是一个浮点数。我修整访问它的使用vector4_f32的元素,但我得到一个错误,这不是的__m128如何从XMVECTOR获取浮点值? (DirectXMath)

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

成员的[]运营商未在XMVECTOR

回答

3

定义您可以通过访问XMVECTOR单个元素XMVectorGetX,XMVectorGetY,XMVectorGetZXMVectorGetW。但请记住,由于DirectXMath使用SIMD指令集,因此这些更可能是昂贵的操作。欲了解更多信息:

1:XMVector3Dot performance

2:Expensive than expected

+1

你也可能想看看[SimpleMath](https://github.com/Microsoft/DirectXTK/wiki/SimpleMath )DirectXMath的包装器。 –