DirectX 11学習ノート5-D 3 DXMAthライブラリ


directx 11は特にベクトル行列の計算に用いる数学ライブラリを発売し,128ビットを用いて4本の32ビットデータ(SIMD)を同時に計算した.
従来は基本的にdirectx 10 mathを用いる.hこのヘッダファイル.この数学ライブラリは新しく出た以上,ハードウェアの扱いが以前よりずっと速く,最適化されているに違いない.技術は永遠に果てしないですね.新しいものをお勧めします
xnamathは単独で使用できるようになった.h directx 9 10 11はすべてこのライブラリを使うことができて、とても便利です.次の表は、以前の数学ライブラリから置換関数をすばやく見つけることができます.
ところで昨夜穴に出会った.長い間解決した.もともとxnamathの中のxmatrix xmvectorなどが位置合わせの問題にかかわっているからです.
ローカル変数、グローバル変数では感じられません.ハードウェアは自動的に配置されます.しかし、クラスメンバー変数に置くと、エラーが発生しやすくなります.それにあなたはその問題だとは見えません.
長い間デバッグしていました.したがって、このライブラリを使用するときは、クラスメンバー変数として設定することをできるだけ避けます.
次のセクションでは、以前のパッケージをxnamathライブラリの完全なソースコードにアップグレードし、三角形を描くことを実現します.以降のチュートリアルでは、このソースコードで説明します.
彼らの違いのクイッククエリ:
D3DXMath Type	DirectXMath Equivalent
D3DXFLOAT16	HALF
D3DXMATRIXA16	XMMATRIX or XMFLOAT4X4A
D3DXQUATERNION

D3DXPLANE

D3DXCOLOR

XMVECTOR is used rather than having unique types, so you will likely need to use an XMFLOAT4
Note  D3DXQUATERNION::operator * calls the D3DXQuaternionMultiply function, which multiplies two quaternions. But, unless you explicitly use the XMQuaternionMultiply function, you get an incorrect answer when you use XMVECTOR::operator * on a quaternion.

D3DXVECTOR2	XMFLOAT2
D3DXVECTOR2_16F	XMHALF2
D3DXVECTOR3	XMFLOAT3
D3DXVECTOR4	XMFLOAT4
(or if you can guarantee the data is 16-byte aligned, XMVECTOR or XMFLOAT4A )

D3DXVECTOR4_16F	XMHALF4
 

Note  There is no direct equivalent to D3DXVECTOR3_16F in XNAMath.

D3DXMath Macro	DirectXMath Equivalent
D3DX_PI	XM_PI
D3DX_1BYPI	XM_1DIVPI
D3DXToRadian	XMConvertToRadians
D3DXToDegree	XMConvertToDegrees
 

D3DXMath Function	DirectXMath Equivalent
D3DXBoxBoundProbe	BoundingBox::Intersects(XMVECTOR, XMVECTOR, float&)
D3DXComputeBoundingBox	BoundingBox::CreateFromPoints
D3DXComputeBoundingSphere	BoundingSphere::CreateFromPoints
D3DXSphereBoundProbe	BoundingSphere::Intersects(XMVECTOR, XMVECTOR, float&)
D3DXIntersectTriFunction	TriangleTests::Intersects
D3DXFloat32To16Array	XMConvertFloatToHalfStream
D3DXFloat16To32Array	XMConvertHalfToFloatStream
D3DXVec2Length	XMVector2Length or XMVector2LengthEst
D3DXVec2LengthSq	XMVector2LengthSq
D3DXVec2Dot	XMVector2Dot
D3DXVec2CCW	XMVector2Cross
D3DXVec2Add	XMVectorAdd
D3DXVec2Subtract	XMVectorSubtract
D3DXVec2Minimize	XMVectorMin
D3DXVec2Maximize	XMVectorMax
D3DXVec2Scale	XMVectorScale
D3DXVec2Lerp	XMVectorLerp or XMVectorLerpV
D3DXVec2Normalize	XMVector2Normalize or XMVector2NormalizeEst
D3DXVec2Hermite	XMVectorHermite or XMVectorHermiteV
D3DXVec2CatmullRom	XMVectorCatmullRom or XMVectorCatmullRomV
D3DXVec2BaryCentric	XMVectorBaryCentric or XMVectorBaryCentricV
D3DXVec2Transform	XMVector2Transform
D3DXVec2TransformCoord	XMVector2TransformCoord
D3DXVec2TransformNormal	XMVector2TransformNormal
D3DXVec2TransformArray	XMVector2TransformStream
D3DXVec2TransformCoordArray	XMVector2TransformCoordStream
D3DXVec2TransformNormalArray	XMVector2TransformNormalStream
D3DXVec3Length	XMVector3Length or XMVector3LengthEst
D3DXVec3LengthSq	XMVector3LengthSq
D3DXVec3Dot	XMVector3Dot
D3DXVec3Cross	XMVector3Cross
D3DXVec3Add	XMVectorAdd
D3DXVec3Subtract	XMVectorSubtract
D3DXVec3Minimize	XMVectorMin
D3DXVec3Maximize	XMVectorMax
D3DXVec3Scale	XMVectorScale
D3DXVec3Lerp	XMVectorLerp or XMVectorLerpV
D3DXVec3Normalize	XMVector3Normalize or XMVector3NormalizeEst
D3DXVec3Hermite	XMVectorHermite or XMVectorHermiteV
D3DXVec3CatmullRom	XMVectorCatmullRom or XMVectorCatmullRomV
D3DXVec3BaryCentric	XMVectorBaryCentric or XMVectorBaryCentricV
D3DXVec3Transform	XMVector3Transform
D3DXVec3TransformCoord	XMVector3TransformCoord
D3DXVec3TransformNormal	XMVector3TransformNormal
D3DXVec3TransformArray	XMVector3TransformStream
D3DXVec3TransformCoordArray	XMVector3TransformCoordStream
D3DXVec3TransformNormalArray	XMVector3TransformNormalStream
D3DXVec3Project	XMVector3Project
D3DXVec3Unproject	XMVector3Unproject
D3DXVec3ProjectArray	XMVector3ProjectStream
D3DXVec3UnprojectArray	XMVector3UnprojectStream
D3DXVec4Length	XMVector4Length or XMVector4LengthEst
D3DXVec4LengthSq	XMVector4LengthSq
D3DXVec4Dot	XMVector4Dot
D3DXVec4Add	XMVectorAdd
D3DXVec4Subtract	XMVectorSubtract
D3DXVec4Minimize	XMVectorMin
D3DXVec4Maximize	XMVectorMax
D3DXVec4Scale	XMVectorScale
D3DXVec4Lerp	XMVectorLerp or XMVectorLerpV
D3DXVec4Cross	XMVector4Cross
D3DXVec4Normalize	XMVector4Normalize or XMVector4NormalizeEst
D3DXVec4Hermite	XMVectorHermite or XMVectorHermiteV
D3DXVec4CatmullRom	XMVectorCatmullRom or XMVectorCatmullRomV
D3DXVec4BaryCentric	XMVectorBaryCentric or XMVectorBaryCentricV
D3DXVec4Transform	XMVector4Transform
D3DXVec4TransformArray	XMVector4TransformStream
D3DXMatrixIdentity	XMMatrixIdentity
D3DXMatrixDeterminant	XMMatrixDeterminant
D3DXMatrixDecompose	XMMatrixDecompose
D3DXMatrixTranspose	XMMatrixTranspose
D3DXMatrixMultiply	XMMatrixMultiply
D3DXMatrixMultiplyTranspose	XMMatrixMultiplyTranspose
D3DXMatrixInverse	XMMatrixInverse
D3DXMatrixScaling	XMMatrixScaling
D3DXMatrixTranslation	XMMatrixTranslation
D3DXMatrixRotationX	XMMatrixRotationX
D3DXMatrixRotationY	XMMatrixRotationY
D3DXMatrixRotationZ	XMMatrixRotationZ
D3DXMatrixRotationAxis	XMMatrixRotationAxis
D3DXMatrixRotationQuaternion	XMMatrixRotationQuaternion
D3DXMatrixRotationYawPitchRoll	XMMatrixRotationRollPitchYaw (Note the order of parameters is different: D3DXMatrixRotationYawPitchRoll takes yaw, pitch, roll, XMMatrixRotationRollPitchYaw takes pitch, yaw, roll)
D3DXMatrixTransformation	XMMatrixTransformation
D3DXMatrixTransformation2D	XMMatrixTransformation2D
D3DXMatrixAffineTransformation	XMMatrixAffineTransformation
D3DXMatrixAffineTransformation2D	XMMatrixAffineTransformation2D
D3DXMatrixLookAtRH	XMMatrixLookAtRH
D3DXMatrixLookAtLH	XMMatrixLookAtLH
D3DXMatrixPerspectiveRH	XMMatrixPerspectiveRH
D3DXMatrixPerspectiveLH	XMMatrixPerspectiveLH
D3DXMatrixPerspectiveFovRH	XMMatrixPerspectiveFovRH
D3DXMatrixPerspectiveFovLH	XMMatrixPerspectiveFovLH
D3DXMatrixPerspectiveOffCenterRH	XMMatrixPerspectiveOffCenterRH
D3DXMatrixPerspectiveOffCenterLH	XMMatrixPerspectiveOffCenterLH
D3DXMatrixOrthoRH	XMMatrixOrthographicRH
D3DXMatrixOrthoLH	XMMatrixOrthographicLH
D3DXMatrixOrthoOffCenterRH	XMMatrixOrthographicOffCenterRH
D3DXMatrixOrthoOffCenterLH	XMMatrixOrthographicOffCenterLH
D3DXMatrixShadow	XMMatrixShadow
D3DXMatrixReflect	XMMatrixReflect
D3DXQuaternionLength	XMQuaternionLength
D3DXQuaternionLengthSq	XMQuaternionLengthSq
D3DXQuaternionDot	XMQuaternionDot
D3DXQuaternionIdentity	XMQuaternionIdentity
D3DXQuaternionIsIdentity	XMQuaternionIsIdentity
D3DXQuaternionConjugate	XMQuaternionConjugate
D3DXQuaternionToAxisAngle	XMQuaternionToAxisAngle
D3DXQuaternionRotationMatrix	XMQuaternionRotationMatrix
D3DXQuaternionRotationAxis	XMQuaternionRotationAxis
D3DXQuaternionRotationYawPitchRoll	XMQuaternionRotationRollPitchYaw (Note the order of parameters is different: D3DXQuaternionRotationYawPitchRoll takes yaw, pitch, roll, XMQuaternionRotationRollPitchYaw takes pitch, yaw, roll)
D3DXQuaternionMultiply	XMQuaternionMultiply
D3DXQuaternionNormalize	XMQuaternionNormalize or XMQuaternionNormalizeEst
D3DXQuaternionInverse	XMQuaternionInverse
D3DXQuaternionLn	XMQuaternionLn
D3DXQuaternionExp	XMQuaternionExp
D3DXQuaternionSlerp	XMQuaternionSlerp or XMQuaternionSlerpV
D3DXQuaternionSquad	XMQuaternionSquad or XMQuaternionSquadV
D3DXQuaternionSquadSetup	XMQuaternionSquadSetup
D3DXQuaternionBaryCentric	XMQuaternionBaryCentric or XMQuaternionBaryCentricV
D3DXPlaneDot	XMPlaneDot
D3DXPlaneDotCoord	XMPlaneDotCoord
D3DXPlaneDotNormal	XMPlaneDotNormal
D3DXPlaneScale	XMVectorScale
D3DXPlaneNormalize	XMPlaneNormalize or XMPlaneNormalizeEst
D3DXPlaneIntersectLine	XMPlaneIntersectLine
D3DXPlaneFromPointNormal	XMPlaneFromPointNormal
D3DXPlaneFromPoints	XMPlaneFromPoints
D3DXPlaneTransform	XMPlaneTransform
D3DXPlaneTransformArray	XMPlaneTransformStream
D3DXColorNegative	XMColorNegative
D3DXColorAdd	XMVectorAdd
D3DXColorSubtract	XMVectorSubtract
D3DXColorScale	XMVectorScale
D3DXColorModulate	XMColorModulate
D3DXColorLerp	XMVectorLerp or XMVectorLerpV
D3DXColorAdjustSaturation	XMColorAdjustSaturation
D3DXColorAdjustContrast	XMColorAdjustContrast
D3DXFresnelTerm	XMFresnelTerm