X File ist nur halb und schwarz



  • Hey!

    Wisst ihr, was ich falsch machen könnte?

    LPD3DXBUFFER d3dMaterialBuffer = NULL;
    
    	D3DXLoadMeshFromX(fileName, D3DXMESH_SYSTEMMEM, d3dDev, NULL, &d3dMaterialBuffer, NULL, &materials, &d3dXMesh);
    
    	D3DXMATERIAL* d3dxMaterial = (D3DXMATERIAL*)d3dMaterialBuffer->GetBufferPointer();
    
    	d3dMaterial = new D3DMATERIAL9[materials];
        d3dTexture = new LPDIRECT3DTEXTURE9[materials];
    
    	for(unsigned int i = 0; i < materials; i++)
    	{
    		d3dMaterial[i] = d3dxMaterial[i].MatD3D;
    		d3dMaterial[i].Ambient = d3dMaterial[i].Diffuse;
    
    		D3DXCreateTextureFromFile(d3dDev, d3dxMaterial[i].pTextureFilename, &d3dTexture[i]);
    	}
    
        d3dMaterialBuffer->Release();
    
    	d3dDev->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(20,20,60), 1.0f, 0 );
    	d3dDev->BeginScene();
    
    	d3dDev->SetTransform(D3DTS_WORLD, &xMeshMat); 
    
    	for(unsigned i = 0; i < materials; i++)
    	{
    		d3dDev->SetMaterial(&d3dMaterial[i]);
    		d3dDev->SetTexture(0, d3dTexture[i]);
    
    		xMesh.d3dXMesh->DrawSubset(i);
    	}
    
    	d3dDev->EndScene();
    	d3dDev->Present( NULL, NULL, NULL, NULL );
    

    Es wird nur der obere Teil des Modells gezeichnet und ohne Texturen.
    Keine Funktion schlägt fehl, daher die Texturen werden geladen.

    MfG



  • Hatte

    d3dDev->SetRenderState( D3DRS_LIGHTING, FALSE );
    	d3dDev->SetRenderState( D3DRS_ZENABLE, TRUE );
    

    vergessen. Nun ist das Modell texturiert, aber immer noch fehlt ein großes Stück davon. Wenn ich einen Screen machen will, wird der Desktop aufgenommen...

    MfG



  • Und natürlich bei Clear D3DCLEAR_ZBUFFER vergessen.

    🙄

    Hat sich erledigt...sorry


Anmelden zum Antworten