私の大学のプロジェクトでは、講師が提供する 2 つの異なるフレームワークの大部分を組み合わせる必要がありますが、問題は、1 人の講師が XMMATRIX を使用し、もう 1 人が D3DXMATRIX を使用することです。フレームワークの大部分を書き直さなくても、2 つの間で変換する方法はありますか?
この質問で提案されていることを試しました: DirectX 9 で XMMATRIX を D3DMATRIX に変換する方法は?
しかし、これは役に立ちませんでした。XMMATRIX から特定のシェーダー クラスに D3DXMATRIX を渡す必要があります。XMMATRIX を XMFLOAT4X4 に格納してもキャストが機能しませんでした。float から d3dxmatrix への適切な変換がないことがわかります。
XMMATRIX worldMatrix, viewMatrix, projectionMatrix;
XMFLOAT4X4 wMatrix, vMatrix, pMatrix;
m_Direct3D->GetWorldMatrix(worldMatrix);
m_Camera->GetViewMatrix(viewMatrix);
m_Direct3D->GetProjectionMatrix(projectionMatrix);
XMStoreFloat4x4(&wMatrix, worldMatrix);
XMStoreFloat4x4(&vMatrix, viewMatrix);
XMStoreFloat4x4(&pMatrix, projectionMatrix);
m_Tshader->Render(m_Direct3D->GetDeviceContext(), m_Terrain->GetIndexCount(), (D3DXMATRIX)wMatrix, (D3DXMATRIX)vMatrix, (D3DXMATRIX)pMatrix,
m_Light->GetAmbientColour, m_Light->GetDiffuseColour, m_Light->GetDirection);
ありがとう