Bonjour a tous.
Je vous expose mon probleme:
Je dois réaliser un filtre sous directx 8 sans pixel shader, pour ce faire je crée un carré sur lequel je veux plaquer une texture dans laquelle jai copié la surface de rendu (device->setRenderTarget(masurface) )
Mais apparament je fais ca mal car mon carré affiche une texture toute bizarre et mon objet s affiche quand meme derriere ce carré (je veux que tout s'affiche uniquement dans cette zone de rendu)
je vais vous montrer mon code car je galère a trouver mon erreur
Partie initialisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //je crée la texture de rendu g_pd3dDevice->CreateTexture(600, 600, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &g_pTexture); //je prends la surface 0 de celle-ci g_pTexture->GetSurfaceLevel (0, &pLevel0Surface); device //sauvegarde du stencil buffer g_pd3dDevice->GetDepthStencilSurface(&pZSurface);
ensuite dans la partie rendu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,1.0f), 1.0f, 0 ); //je dis a DX de déssiner dans ma texture g_pd3dDevice->SetRenderTarget (pLevel0Surface, pZSurface); g_pd3dDevice->BeginScene(); //dessin du carré contenant la texture g_pd3dDevice->SetTexture( 0, g_pTexture ); g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, sizeof(Vertex) ); g_pd3dDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX ); g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 ); g_pd3dDevice->EndScene(); g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
Je vois vraiment pas ce qui manque (svp soyez sympa jsui un debutant sous DX)
Merci de m'aider j'en peux plus !!!!!
Partager