gpt4 book ai didi

c++ - 将 XMMATRIX 转换为 D3DXMATRIX

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:36 26 4
gpt4 key购买 nike

对于我的大学项目,我必须结合讲师提供的两种不同框架的大部分,但问题是一位讲师使用 XMMATRIX,一位使用 D3DXMATRIX。有没有一种方法可以在无需重写大部分框架的情况下在两者之间进行转换?

我已经尝试过这个问题中的建议:how to convert XMMATRIX to D3DMATRIX in DirectX 9?

但这并没有帮助。我需要将 D3DXMATRIX 从 XMMATRIX 传递到特定的着色器类。将 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);

谢谢

最佳答案

(D3DXMATRIX)wMatrix将不起作用。

如果函数采用D3DXMATRIX按值(value),那么你可以做 *reinterpret_cast<D3DXMATRIX*>(&wMatrix) .

如果函数采用D3DXMATRIX*那么你可以做 reinterpret_cast<D3DXMATRIX*>(&wMatrix) .

关于c++ - 将 XMMATRIX 转换为 D3DXMATRIX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com