无法在D3D9中使用SetTransform

时间:2009-11-16 04:44:24

标签: c++ direct3d direct3d9

什么可能阻止IDirect3DDevice9 :: SetTransform工作?我已经看过很多关于在Direct3D9中使用转换矩阵的教程,包括this one here。据我所知,他们都是这样做的。

我正在尝试编写一些代码来翻译纹理多边形。我用一个用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);

1 个答案:

答案 0 :(得分:3)

设置“D3DFVF_TLVERTEX”表示您在顶点缓冲区中提供“变换和点亮”顶点,因此设备不会将变换矩阵应用于这些顶点。