我无法单独翻译我的对象,当我尝试这样做时,整个世界将转而翻译。
任何人都有任何想法为什么会这样?
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);
答案 0 :(得分:0)
D3D设备充当状态机。每当您在设备上设置某个状态(如世界变换矩阵)时,它将在多个绘制调用之间保持不变。绘制对象后,必须先将世界变换重置为单位矩阵,然后再绘制场景的其余部分以防止其被翻译。
D3DXMATRIX matIdentity;
D3DXMatrixIdentity(&matIdentity);
d3ddev->SetTransform(D3DTS_WORLD, &matIdentity);