2016-03-18 110 views
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); 

回答

0

D3D設備作爲一個狀態機。每當你在設備上設置一些狀態,如世界變換矩陣,它將持續在多個繪製調用之間。在繪製對象之後,必須在繪製場景的其餘部分之前將世界變換重置爲單位矩陣,以防止它被翻譯。

D3DXMATRIX matIdentity; 
D3DXMatrixIdentity(&matIdentity); 
d3ddev->SetTransform(D3DTS_WORLD, &matIdentity); 
相關問題