새로운 XMVECTOR 및 XMFLOAT3 클래스를 사용하면 2 포인트 사이의 거리를 얻는 가장 좋은 방법은 무엇입니까?DirectXMath로 2 포인트 사이의 거리를 얻는 가장 좋은 방법은 무엇입니까
float distance(const XMFLOAT3& v1,const XMFLOAT3& v2)
{
XMVECTOR vector1 = XMLoadFloat3(&v1);
XMVECTOR vector2 = XMLoadFloat3(&v2);
XMVECTOR vectorSub = XMVectorSubtract(vector1,vector2);
XMVECTOR length = XMVector3Length(vectorSub);
float distance = 0.0f;
XMStoreFloat(&distance,length);
return distance;
}
이는 X, Y, Z 단지 3 수레와 일반 Vector3 클래스보다 빠른됩니다 그래서 나는 다음과 같은 내놓았다 기능 XMVector * 가정에서 그것을 수행하는 기능을 찾을 수 없습니다 intrinsic 최적화를 사용하기 때문에 sqrt를 사용합니까? 즉 :
float Distance(const Vector3& point1,const Vector3& point2)
{
float distance = sqrt((point1.x - point2.x) * (point1.x - point2.x) +
(point1.y - point2.y) * (point1.y - point2.y) +
(point1.z - point2.z) * (point1.z - point2.z));
return distance;
}