2009-11-16 14 views
1

Qu'est-ce qui peut empêcher IDirect3DDevice9 :: SetTransform de fonctionner? J'ai regardé beaucoup de tutoriels pour l'utilisation de matrices de transformation dans Direct3D9, y compris this one here. Et autant que je sache, ils le font tous de la même manière. J'essaye d'écrire du code juste pour traduire un polygone texturé. J'appelle SetTransform avec une matrice initialisée avec D3DXMatrixTranslation, et il retourne S_OK. Cependant, les polygones réels dessinés à l'écran ne sont pas transformés.Impossible d'utiliser SetTransform dans D3D9

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); 
+0

Utilisez-vous des shaders? – GManNickG

+0

@GMan: non. Rien que deux polys et une seule texture –

+0

Et c'est le code actuel, rien entre les deux? Je suppose que vous avez également mis en place vos autres matrices? (La projection et la vue) – GManNickG

Répondre

3

Vous définissez « D3DFVF_TLVERTEX » ce qui signifie que vous fournissez sommets « Transformer et allumé » dans le tampon de sommet, donc le dispositif ne va pas appliquer une matrice de transformation à ces sommets.

+0

Oui c'était ça, apparemment Transformé signifie aussi "et incapable d'être transformé furthur" . –