Fehler beim Laden der Textur
-
Hi
Ich bin am Programmieren eines X-Mesh. Doch nun wenn ich eine Textur darüber versehe, wird diese nicht angezeigt, warum?
Hier ist ein Codeausschnitt:
void CModel::LoadModel(Object *pObject, LPCTSTR File) { LPD3DXBUFFER bufMaterial; D3DXLoadMeshFromX(File, D3DXMESH_SYSTEMMEM, g_pD3D->d3ddev, NULL, &bufMaterial, NULL, &pObject->numMaterials, &pObject->Mesh); D3DXMATERIAL * tempMaterials = (D3DXMATERIAL*)bufMaterial->GetBufferPointer(); pObject->Material = new D3DMATERIAL9[pObject->numMaterials]; pObject->Texture = new LPDIRECT3DTEXTURE9[pObject->numMaterials]; for(DWORD index = 0; index < pObject->numMaterials; index++) { pObject->Material[index] = tempMaterials[index].MatD3D; pObject->Material[index].Ambient = pObject->Material[index].Diffuse; if(FAILED(D3DXCreateTextureFromFile(g_pD3D->d3ddev, (LPCWSTR)(tempMaterials[index].pTextureFilename), &pObject->Texture[index]))) { MessageBox(NULL, L"Fehler beim Laden der Texture", L"Fehler aufgetreten", MB_OK); pObject->Texture[index] = NULL; } } } void CModel::DrawModel(Object * pObject, float x, float y, float z) { D3DXMATRIX matTranslate; D3DXMATRIX mRotationY; fAngle += 0.009f; D3DXMatrixRotationY(&mRotationY, fAngle); D3DXMatrixTranslation(&matTranslate, x, y, z); g_pD3D->d3ddev->SetTransform(D3DTS_WORLD, &mRotationY); for(DWORD index = 0; index < pObject->numMaterials; index++) { g_pD3D->d3ddev->SetMaterial(&pObject->Material[index]); if(pObject->Texture[index] != NULL) g_pD3D->d3ddev->SetTexture(0, pObject->Texture[index]); pObject->Mesh->DrawSubset(index); } }
Kann mir jemand sagen wo der Fehler ist?
Gruss Patrick
-
das geht nicht:
pObject->Texture = new LPDIRECT3DTEXTURE9[pObject->numMaterials];
du musst dir über das Device ein Textur Objekt holen