Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème d'affichage avec DirectX [ Windows / DirectX ] (eplanet)

dimanche 15 octobre 2006 à 23:51:52 | Problème d'affichage avec DirectX

eplanet

Bonsoir tout le monde, je fais un jeu en DirectX et j'ai un problème d'affichage : l'image ne s'affiche que partiellement, il y a plein de carrés et de traits noirs par dessus. Je pense que le problème vient du Zbuffer ou du StencilBuffer car quand je désactive "EnableAutoDepthStencil" tout marche correctement... Je vous mets le bout de mon code qui initialise l'affichage :

  D3D = Direct3DCreate9( D3D_SDK_VERSION );

    D3DPRESENT_PARAMETERS d3dpp;
    D3DDISPLAYMODE d3ddm;
    D3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);

    ZeroMemory( &d3dpp, sizeof(d3dpp) );
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.Windowed = true;   
    d3dpp.BackBufferWidth = 1024;
    d3dpp.BackBufferHeight = 768;
    d3dpp.BackBufferFormat = d3ddm.Format;
    d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
    d3dpp.EnableAutoDepthStencil = true;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D24X8;
    d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

    D3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &Device );
    Device->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
    Device->SetRenderState( D3DRS_ZENABLE, true );
    Device->SetRenderState( D3DRS_LIGHTING, true );
    Device->SetRenderState(D3DRS_ALPHATESTENABLE, true);
    Device->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
    Device->SetRenderState(D3DRS_ALPHAREF, 0x00);
    Device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
    Device->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
    Device->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
    Device->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);
    Device->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
    Device->SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_DIFFUSE);
    Device->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
    Device->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
    Device->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR );

Si vous avez une idée...
Merci !

Vince

lundi 16 octobre 2006 à 14:52:14 | Re : Problème d'affichage avec DirectX

niketou

Essais de remplacer ca voir :
d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;

lundi 16 octobre 2006 à 20:27:49 | Re : Problème d'affichage avec DirectX

eplanet

Non le problème continue....

Vince

mercredi 18 octobre 2006 à 16:46:51 | Re : Problème d'affichage avec DirectX

eplanet

Réponse acceptée !
Ca y'es j'ai enfin trouvé, c'était tout bête J'avais oublié d'effacer le Z-buffer à chaque frame en utilisant D3DCLEAR_ZBUFFER...

Vince



Cette discussion est classé dans : true, device, d3dpp, setrenderstate, d3drs


Répondre à ce message

Sujets en rapport avec ce message

Rendu dans une surface transparente [ par thebbain ] BonjourCela fait un moment qu eje cherche su rintenet mais rien .Voici mon probleme. Je veux rendre dans une surface de rendu une scene intermediaire Ma fenêtre veut pas s'ouvrir... (MFC) [ par Taurnil ] Bonjour à tous, je suis actuellement sur un projet qui vise à piloter le port série à l'aide d'une petite interface utilisateur.Cette interface est ré Enregistrement d'une partie du device contexte. [ par moumouteb ] Bonjour.Je voudrais savoir si il est possible d'enregistrer une zone du device contexte avec une fonction du type de celle pour dessiner un rectangle Scrollbar/Listbox et mollette [ par DjanGoJack ] Bonjour, J'ai un léger problème sur lequel je suis depuis quelques jours.Mon application crée, à partir d'un fichier xml et d'une application en c++ u Argument de la fonction waveOuSetVolume [ par vinzounet ] Bonjour ou bonsoir :)Je ne comprend pas ce que l'argument "hwo" de la fonction waveOuSetVolume représente (because I talk a little bit English, oulala la fonction InvalidateRect() [ par dyroj ] bonsoir, je voudrais savoir exactement la difference entre :-InvalidateRect(hwnd, NULL, FALSE);-InvalidateRect(hwnd, NULL, TRUE);-InvalidateRect(hwn Device Extensions [ par deck_bsd ] Yop à tous,Voila je suis en train de faire un driver et j'ai un petit souci de compréhension. En fait dans ce driver j'utilise une fonction CALLBACK q Parser sous Visual C++ en application Smart Devices [ par Grotony2 ] Bonjour à tous Je dois développer un projet tournant sur un Smartphone sous Windows Mobile, en C++. Pour cela j'utilise Visual C++ 2008 où je crée de Trouver Vendor ID et Device ID en C [ par rm14 ] Bonjour à tous,je cherche comment on peut trouver le Vendor ID et Device ID d'une carte PCI en langage C.j'ai besoin de ça pour identifier le type de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.