Rom1Mars
30/10/2005, 12h47
Je fais un appel aux ames charitables qui daigneront bien m'expliquer le fonctionnement des SetTextureStageState. En effet j'ai essayé de prendre des bouts de code de ça et là pour réussir le multitexturing, impossible...
Tout d'abord dans le "isDeviceAcceptable" j'ai bien vérifié que ma carte vidéo supportait le multitexturing :
if(!(pCaps->MaxSimultaneousTextures > 1)) //number of textures
{
MessageBox(NULL,
L"single pass multitexturing not supported!",
L"CheckDeviceCaps()",
MB_OK);
}
Au préalablement dans un "init" j'ai bien mis :
TCHAR strTexture[256]=L"test_grass.png";
D3DXCreateTextureFromFile( pd3dDevice,strTexture,&m_pTexture1);
TCHAR strTexture2[256]=L"test_grass2.png";
D3DXCreateTextureFromFile( pd3dDevice,strTexture,&m_pTexture2);
j'ai bien précisé que j'avais 2 textures : D3DFVF_CHUNK_VERTEX =
(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX2)
et j'ai mis la meme valeur dans u2,v2 que celle precedemment utilisée dans u1,v1.
Et enfin j'utilise ce morceau de code que j'ai rencontré 2 fois sur le net (je me dis donc qu'il doit etre bon...) :
m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
m_pd3dDevice->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
m_pd3dDevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
m_pd3dDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
Et ça marche pas... seule la premiere texture est visible :00000012:
Donc tout d'abord quelqu'un pourrait il m'expliquer avec précision et clairement le fonctionnement de ces SetTextureStageState et en particulier du 2eme et 3eme argument.
Et enfin si quelqu'un aurait une idée du problème que je rencontre ? :00000026:
Merci :00000025:
Tout d'abord dans le "isDeviceAcceptable" j'ai bien vérifié que ma carte vidéo supportait le multitexturing :
if(!(pCaps->MaxSimultaneousTextures > 1)) //number of textures
{
MessageBox(NULL,
L"single pass multitexturing not supported!",
L"CheckDeviceCaps()",
MB_OK);
}
Au préalablement dans un "init" j'ai bien mis :
TCHAR strTexture[256]=L"test_grass.png";
D3DXCreateTextureFromFile( pd3dDevice,strTexture,&m_pTexture1);
TCHAR strTexture2[256]=L"test_grass2.png";
D3DXCreateTextureFromFile( pd3dDevice,strTexture,&m_pTexture2);
j'ai bien précisé que j'avais 2 textures : D3DFVF_CHUNK_VERTEX =
(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX2)
et j'ai mis la meme valeur dans u2,v2 que celle precedemment utilisée dans u1,v1.
Et enfin j'utilise ce morceau de code que j'ai rencontré 2 fois sur le net (je me dis donc qu'il doit etre bon...) :
m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
m_pd3dDevice->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
m_pd3dDevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
m_pd3dDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
Et ça marche pas... seule la premiere texture est visible :00000012:
Donc tout d'abord quelqu'un pourrait il m'expliquer avec précision et clairement le fonctionnement de ces SetTextureStageState et en particulier du 2eme et 3eme argument.
Et enfin si quelqu'un aurait une idée du problème que je rencontre ? :00000026:
Merci :00000025: