IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

Problème de Z-Buffer


Sujet :

DirectX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut Problème de Z-Buffer
    Bonjour à tous,

    Voilà, j'essaie de m'amuser avec Directx et l'importation de modeles 3D. Le problème, c'est que je stocke mes modeles dans un objet ModeleX, et que j'utilise la fonction suivante pour afficher le resultat. Ca marche sans problème, sauf que mes modeles sont affichés dans l'ordre de leur création. Alors je voulais savoir si m méthode de rendu était correcte, ou si je devrais plutot tout stocker dans un vertexbuffer, puis le rendre... quelqu'un aurait une idée de la façon de procéder pour gérer les objets qui cachent les autres ?


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    BOOL AfficheUnivers(void)
    {
    	if(FAILED(pd3dDevice->Clear(0,0, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,255), 1.0f, 0)))
    		return FALSE;
     
    	pd3dDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
     
     
    	if(PresenceCamera==TRUE)	// Si il y a une camera, on peut afficher le reste
    	{
    		pd3dDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
    		pd3dDevice->BeginScene();	// debut de la scene
     
     
     
    		vector<ModeleX>::iterator aff;
    		aff=ListeModeleX.begin();
    		for(int i=0;i<ListeModeleX.size();i++)	// Affichage des ModeleX
    		{
    			if(i>0)
    				aff++;
     
    			pd3dDevice->SetRenderState(D3DRS_SHADEMODE, aff->DonneShading());
    			pd3dDevice->SetRenderState(D3DRS_FILLMODE, aff->DonneMode());
    			for(DWORD j=0;j<aff->DonneNombreMateriau();j++)
    			{
    				pd3dDevice->SetMaterial(aff->DonneMateriau(j));
    				aff->DessinePartie(j);
    			}
    		}
    		pd3dDevice->EndScene();
    	}

    à noter que DessinePartie(i), est équivalent à DrawSubset(i).

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut
    ok, apparemment, le pb est résolu, c'était juste une mauvaise initialisation de l'AutoDepthStencil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème dans un buffer overflow intentionnel.
    Par Tibapbedoum dans le forum C
    Réponses: 13
    Dernier message: 04/06/2010, 19h07
  2. Problème connection : No Buffer space available
    Par SebastianPx dans le forum JDBC
    Réponses: 1
    Dernier message: 08/07/2009, 18h58
  3. Problème de taille buffer et de socket
    Par Link3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/08/2008, 11h28
  4. [read] problème avec le buffer
    Par pitit777 dans le forum Réseau
    Réponses: 6
    Dernier message: 05/10/2006, 18h38
  5. Problème de Stencil-buffer
    Par Steki-kun dans le forum OpenGL
    Réponses: 2
    Dernier message: 18/03/2005, 23h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo