0

我无法单独翻译我的对象,当我尝试这样做时,整个世界都会翻译。

有人知道为什么会这样吗?

d3ddev->SetStreamSource(0, v_buffer[2], 0, sizeof(CUSTOMVERTEX));       
d3ddev->SetIndices(i_buffer[2]);                                        
d3ddev->SetTexture(0, texture[1]);

D3DXMATRIX matTranslate;
D3DXMatrixTranslation(&matTranslate, 30.0f, 0.0f, 30.0f);
d3ddev->SetTransform(D3DTS_WORLD, &matTranslate);
d3ddev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 24, 0, 12);
4

1 回答 1

0

D3D 设备充当状态机。每当您在设备上设置某些状态时,例如世界变换矩阵,它将在多个绘制调用之间持续存在。绘制对象后,必须在绘制场景的其余部分之前将世界变换重置回单位矩阵,以防止其被平移。

D3DXMATRIX matIdentity;
D3DXMatrixIdentity(&matIdentity);
d3ddev->SetTransform(D3DTS_WORLD, &matIdentity);
于 2016-03-21T18:10:16.970 回答