DirectX 数学库设计不允许直接访问XMMATRIX
和XMVECTOR
成员。这很可能是因为它们将值存储在特殊的SIMD 数据类型中。
要读取 an 的组件,XMVECTOR
您可以使用XMVectorGet*
访问函数,例如:
XMVECTOR V;
float x = XMVectorGetX(V);
float w;
XMVectorGetWPtr(&w, V);
或将其存储到 a中的XMStore*
函数XMFLOAT4
,它具有可直接访问的标量成员:
XMVECTOR vPosition;
XMFLOAT4 fPosition;
XMStoreFloat4(&fPosition, vPosition);
float x = fPosition.x;
XMMATRIX
您可以存储到XMFLOAT4X4
:
XMMATRIX mtxView;
XMFLOAT4X4 fView;
XMStoreFloat4x4(&fView, mtxView);
float fView_11 = fView._11;
也有相反的加载函数:写入XMVECTOR
和XMMATRIX
。
有关详细信息,请参阅DirectXMath 编程参考。
快乐编码!