2017-10-21 90 views
1

フロートで2つの3Dベクトルの内積を取得したいと考えています。しかし残念なことに、結果は浮動小数点ではなくベクトルです。それは__m128XMVECTORから浮動小数点値を取得する方法はありますか? (DirectXMath)

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

のメンバーではないことを、私はそれがvector4_f32を使用して要素のアクセスするために揃えたが、私はエラーを取得[]オペレータがXMVECTOR

答えて

3

に定義されていないあなたが使用してXMVECTORの個々の要素にアクセスすることができますXMVectorGetX,XMVectorGetY,XMVectorGetZおよびXMVectorGetWである。しかし、これらはDirectXMathがSIMD命令セットを使用するため、高価な演算である可能性が高いことを覚えておいてください。

1:XMVector3Dot performance

2:詳細情報についてはExpensive than expected

+1

また、[SimpleMath](https://github.com/Microsoft/DirectXTK/wiki/SimpleMathを見てしたい場合があります)DirectXMathのラッパーです。 –

関連する問題