[Direct3D, C++] Wyświetlanie pliku .x
Ostatnio zmodyfikowano 2010-10-01 16:08
SeaMonster131 Temat założony przez niniejszego użytkownika |
[Direct3D, C++] Wyświetlanie pliku .x » 2010-09-27 17:08:31 Męczę się z tym od rana jak ten plik .x wyświetlić :) Używam Direct3D9 ;) Stworzyłem sobie funkcję ładującą obiekt i go wyświetlającą, ale kiedy uruchomi się aplikacja, to ten model tak jakby był w trybie wirefame - czyli są takie połączone ze sobą trójkąty.... Tutaj kod: LPD3DXMESH g_pMesh = NULL; D3DMATERIAL9 * g_pMeshMaterials = NULL; LPDIRECT3DTEXTURE9 * g_pMeshTextures = NULL; DWORD g_dwNumMaterials;
void LoadModel( string name, string texture ) { LPD3DXBUFFER pD3DXMtrlBuffer; D3DXLoadMeshFromX( name.c_str(), D3DXMESH_SYSTEMMEM, g_App.GetDevice(), NULL, & pD3DXMtrlBuffer, NULL, & g_dwNumMaterials, & g_pMesh ); D3DXMATERIAL * d3dxMaterials =( D3DXMATERIAL * ) pD3DXMtrlBuffer->GetBufferPointer(); g_pMeshMaterials = new D3DMATERIAL9[ g_dwNumMaterials ]; g_pMeshTextures = new LPDIRECT3DTEXTURE9[ g_dwNumMaterials ]; for( DWORD i = 0; i < g_dwNumMaterials; i++ ) { g_pMeshMaterials[ i ] = d3dxMaterials[ i ].MatD3D; g_pMeshMaterials[ i ].Ambient = g_pMeshMaterials[ i ].Diffuse; D3DXCreateTextureFromFile( g_App.GetDevice(), texture.c_str(), & g_pMeshTextures[ i ] ); } pD3DXMtrlBuffer->Release(); }
void RenderModel() { D3DCOLOR_XRGB( 0, 0, 255 ), 1.0f, 0 ); for( DWORD i = 0; i < g_dwNumMaterials; i++ ) { g_App.GetDevice()->SetMaterial( & g_pMeshMaterials[ i ] ); g_App.GetDevice()->SetTexture( 0, g_pMeshTextures[ i ] ); g_pMesh->DrawSubset( i ); } }
Nie wiem już co jest źle... PS. Ktoś może coś pisał/pisze w D3D? |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-09-28 19:45:39 Heh, widze że sie nikt na tym nie zna... :) No cóż, ja jeszcze nic nie wykombinowałem, ale jakoś to bd musiał zrobić sam :D
PS. Na serio nikt nie pisze/pisał w D3D ? :) |
|
lenrokskate |
» 2010-09-30 12:23:55 generalnie mało kto z tego forum pisze gry w 3D itp.. my się raczej męczymy obiektowością i innymi duperelami xD |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-09-30 16:45:22 Aha :) A tak apropo to problem rozwiązany ;) |
|
lenrokskate |
» 2010-10-01 15:54:39 jak? |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-10-01 16:08:32 Przy wyświetlaniu dodałem: GetDevice()->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID );
:) |
|
« 1 » |