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 avec les point sprites


Sujet :

DirectX

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 74
    Points : 31
    Points
    31
    Par défaut problème avec les point sprites
    bonjour tout le monde,

    j'ai repris le code des point sprites fourni dans le sdk et j'ai voulu l'implémenter dans mon petit moteur 3d.... problème : je n'arrive pas à afficher ces fameux point sprites !!!

    impossible de trouver d'ou vient l'erreur mais je verrais bien un flag mal initialisé...

    j'initialise mes p-sprites


    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
     
     
    HRESULT InitParticules()
    {
     
        m_pParticleSystem      = new CParticleSystem( 512, 2048, 0.03f );
        m_pParticleTexture     = NULL;
        m_dwNumParticlesToEmit = 1;
        m_dwParticleColor      = COLOR_WHITE;
     
    	D3DXCreateTextureFromFileExA(g_pd3dDevice,		    //device
    					"particule.bmp",            //file name
    					D3DX_DEFAULT,		    //width
    					D3DX_DEFAULT,		    //height
    					0,			    //mip levels
    					NULL,			    //usage
    					D3DFMT_UNKNOWN,	            //texture color format
    					D3DPOOL_MANAGED,	    //memory class
    					D3DX_FILTER_BOX,	    //filter
    					D3DX_FILTER_BOX,	    //mip filter
    					0,			    //color key
    					NULL,			    //source info
    					NULL,			    //pallette
    					&m_pParticleTexture);	    //texture object
     
     
     
    	return S_OK;
     
    }
    je créé le v-buffer de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(FAILED(hr = pd3dDevice->CreateVertexBuffer( m_dwDiscard * 
    		sizeof(POINTVERTEX), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY | D3DUSAGE_POINTS, 
    		D3DFVF_POINTVERTEX, D3DPOOL_DEFAULT, &m_pVB )))
    	{
            return E_FAIL;
    	}
     
        return S_OK;
    j'affiche mes p-sprites de la manière suivante ( la fonction render est issue de la classe fournie dans le sdk, tout comme la fonction update )

    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
    // particules
    	 D3DXVECTOR3 vEmitterPostion( 0.0f, 0.0f, 0.0f );
     
    	// Update particle system
            m_pParticleSystem->Update( ElapsedTime,            m_dwNumParticlesToEmit,
                                   g_clrColor[m_dwParticleColor],
                                   g_clrColorFade[m_dwParticleColor], 8.0f,
                                   vEmitterPostion );
     
    	// Draw particles
        g_pd3dDevice->SetRenderState( D3DRS_LIGHTING,  FALSE );
     
        g_pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );
        g_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
        g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
        g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
     
    	//g_pd3dDevice->SetTexture(0, m_pParticleTexture );
     
            m_pParticleSystem->Render( g_pd3dDevice );*/
     
     
    	// on restaure les paramètres standards
    	g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,FALSE);
        g_pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
     
    	//g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );

    voilà, je sais c très long mais j'ai mis tout ce que je pouvais... franchement ça fait des nuits que je suis là dessus et vraiment je craque !!!

    si quelqu'un peut m'aider.....

  2. #2
    mat.M
    Invité(e)
    Par défaut
    m_pParticleSystem = new CParticleSystem( 512, 2048, 0.03f );

    que valent 512, 2048 ???
    Ces paramêtres semblent être trop élevés

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 74
    Points : 31
    Points
    31
    Par défaut
    c'est bon j'ai résolu mon problème... mais je sais pas trop d'où ça venait puisqu'au bout du compte j'ai fini par réécrire entièrement le code de mes particules....

    surement un problème lors des renderstates...

Discussions similaires

  1. [Lazarus] [Linux] Problème avec les points d'arrêts
    Par ovni76 dans le forum Lazarus
    Réponses: 6
    Dernier message: 15/02/2010, 22h45
  2. Problème avec les points d'extension
    Par hamster. dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 28/08/2008, 16h17
  3. Projet WinCE 5 : Problème avec les points d'arrêts
    Par arnoo91410 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 31/08/2007, 16h11
  4. [TP] Problème avec les points d'arrêt
    Par 8811fred dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/05/2007, 21h17
  5. Problème avec les Sprites
    Par themoye dans le forum Java ME
    Réponses: 3
    Dernier message: 28/09/2006, 15h33

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