niketou
Messages postés295Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention 6 décembre 2010
-
2 déc. 2005 à 13:42
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 2008
-
3 déc. 2005 à 00:11
Salut a tous.
Voila je fais un moteur 3d en dx9.
Voici un bout de code,en fait je devrai voir un objet 3d mais je ne vois rien.
L'objet et sa texture se chargent bien mais l'erreur doit venir de la position (camera ou objet ou la perspective).
pour la perspective:
D3DXMatrixPerspectiveFovLH( &matProj,D3DX_PI/4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
// Load the mesh from the specified file
if (FAILED(D3DXLoadMeshFromX(Object1, D3DXMESH_SYSTEMMEM,g_pd3dDevice, NULL,&pD3DXMtrlBuffer, NULL, &g_dwNumMaterials,&g_pMesh )))
{
MessageBox(NULL,"Can't load object",NULL,MB_OK);
}
D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
g_pMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];
g_pMeshTextures = new LPDIRECT3DTEXTURE9[g_dwNumMaterials];
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 2 déc. 2005 à 15:17
Sans analyser dans les détails ton code, affiche les faces cachées avec
SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE) au cas ou tu sois à
l'interieur de l'objet, modifie l'orientation de la caméra pour
chercher dans toutes les directions (avec des sinf(timeGetTime()*0.01f
par exemple).
Met un fond différent du noir car une faces dont la texture n'a pas été trouvée est affichée en noir.
Si tu ne vois toujours rien, c'est que ton problème vient des matrices.
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 3 déc. 2005 à 00:11
Passe le code c'est plus simple car le problème ne semble pas venir de
cette portion: tes matrices sont justes. Il y a plein de paramètres que
tu as peut-être mal modifié, des flags non appropriés pour initialiser
le backbuffer ou les textures.
Met un fond différent du noir quand même car directX ne rale pas
forcement (dépend de l'erreur reçue) si la texture n'a pas trouvé de
source. Lequel cas il la met à 0x00000000. Elle s'affichera en noir.