Bonjour,
voila mon probleme... J'ai cree une classe CPlayer. Dans cette class j'ai une variable interne D3DXMATRIX m_mMat et une mesh CD3DMesh* m_pMesh.
J'ai initialisé dans le constructeur la matrice ainsi:
Dans FrameMove():
Code : Sélectionner tout - Visualiser dans une fenêtre à part D3DXMatrixIdentity( &m_mMat );
m_vPos=(0.0f,0.0f,0.0f) et m_vVel=m_vPos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // rendu final m_vPos+=m_vVel*fElapsedTime; D3DXMatrixTranslation(&m_mMat,m_vPos.x,m_vPos.y,m_vPos.z);
Le probleme vient maintenant dans Render():
La mesh s'affiche tres bien a l'ecran quand je ne tranforme pas la matrice mais quand j'essaie de tranformer le WORLD a partir de la matrice m_mMat la mesh ne s'affiche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 D3DXMATRIXA16 matSavedWorld, matWorld; pd3dDevice->GetTransform( D3DTS_WORLD, &matSavedWorld ); D3DXMatrixMultiply( &matWorld, &m_mMat, &matSavedWorld ); pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld ); // le rendu final m_pMesh->Render(pd3dDevice); pd3dDevice->SetTransform( D3DTS_WORLD, &matSavedWorld );
Partager