szpaqszpaq
March 12th, 2009, 07:45 PM
i have textured mesh in x file, texture is tga with alpha channel, how to enable alpha channel for textures in my directx engine ?
this is code which i am using to load mesh:
LPD3DXBUFFER pD3DXMtrlBuffer;
if( FAILED( D3DXLoadMeshFromX(pFilename, D3DXMESH_SYSTEMMEM, g_pd3dDevice, NULL, &pD3DXMtrlBuffer, NULL, &g_dwNumMaterials, &worldMesh ) ) ) //load mesh
{
MessageBox(hMain,"Error (D3DXLoadMeshFromX)","error",MB_OK);
}
/*load materials*/
D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
worldMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];
worldMeshTextures = new LPDIRECT3DTEXTURE9[g_dwNumMaterials];
for( DWORD i=0; i<g_dwNumMaterials; i++ )
{
worldMeshMaterials[i] = d3dxMaterials[i].MatD3D; //copy material
worldMeshMaterials[i].Ambient = worldMeshMaterials[i].Diffuse; //set color
if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, d3dxMaterials[i].pTextureFilename, &worldMeshTextures[i] ) ) )
{
MessageBox(hMain,"Error (D3DXCreateTextureFromFile)","error",MB_OK);
worldMeshTextures[i] = NULL;
}
}
pD3DXMtrlBuffer->Release(); //release help buffer
this is code which i am using to load mesh:
LPD3DXBUFFER pD3DXMtrlBuffer;
if( FAILED( D3DXLoadMeshFromX(pFilename, D3DXMESH_SYSTEMMEM, g_pd3dDevice, NULL, &pD3DXMtrlBuffer, NULL, &g_dwNumMaterials, &worldMesh ) ) ) //load mesh
{
MessageBox(hMain,"Error (D3DXLoadMeshFromX)","error",MB_OK);
}
/*load materials*/
D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
worldMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];
worldMeshTextures = new LPDIRECT3DTEXTURE9[g_dwNumMaterials];
for( DWORD i=0; i<g_dwNumMaterials; i++ )
{
worldMeshMaterials[i] = d3dxMaterials[i].MatD3D; //copy material
worldMeshMaterials[i].Ambient = worldMeshMaterials[i].Diffuse; //set color
if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, d3dxMaterials[i].pTextureFilename, &worldMeshTextures[i] ) ) )
{
MessageBox(hMain,"Error (D3DXCreateTextureFromFile)","error",MB_OK);
worldMeshTextures[i] = NULL;
}
}
pD3DXMtrlBuffer->Release(); //release help buffer