作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
对于我的大学项目,我必须结合讲师提供的两种不同框架的大部分,但问题是一位讲师使用 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/
我是一名优秀的程序员,十分优秀!