1

什么可能会阻止 IDirect3DDevice9::SetTransform 工作?我查看了很多在 Direct3D9 中使用转换矩阵的教程,包括这里的这个。据我所知,他们都以同样的方式做事。

我正在尝试编写一些代码来翻译纹理多边形。我用一个用 D3DXMatrixTranslation 初始化的矩阵调用 SetTransform,它返回 S_OK。但是,绘制到屏幕上的实际多边形不会被转换。

D3DXMATRIX m_Translation;
D3DXMatrixTranslation(&m_Translation,100,100,0);
d3dDevice->SetTransform(D3DTS_WORLD, &m_Translation);

d3dDevice->SetFVF(D3DFVF_TLVERTEX);
d3dDevice->SetStreamSource(0, vertexBuffer, 0, sizeof(TLVERTEX));

HRESULT hr = d3dDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, 2);
4

1 回答 1

4

您设置了“D3DFVF_TLVERTEX”,这意味着您在顶点缓冲区中提供了“Transform and Lit”顶点,因此设备不会对这些顶点应用变换矩阵。

于 2009-11-17T00:19:51.353 回答