Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Direct3D, C++] Wyświetlanie pliku .x

Ostatnio zmodyfikowano 2010-10-01 16:08
Autor Wiadomość
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:
C/C++
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?
P-22413
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 ? :)
P-22460
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
P-22505
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-09-30 16:45:22
Aha :)
A tak apropo to problem rozwiązany ;)
P-22522
lenrokskate
» 2010-10-01 15:54:39
jak?
P-22565
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-10-01 16:08:32
Przy wyświetlaniu dodałem:
C/C++
GetDevice()->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID );
//GetDevice() - ta nazwa może być inna :)
:)
P-22566
« 1 »
  Strona 1 z 1