J'ai un problème lorsque j'essaie d'utiliser D3DPT_TRIANGLELIST. L'exemple suivant provient d'un livre, donc je ne vois pas quel peut être le problème.Impossible de faire fonctionner D3DPT_TRIANGLELIST
VertexData:
ColorVertex *v;
Triangle->Lock(0,0,(void**)&v,0);
v[0] = ColorVertex(-1.0f, 0.0f, 2.0f, D3DCOLOR_XRGB(255, 0,0));
v[1] = ColorVertex(0.0f, 0.0f, 2.0f, D3DCOLOR_XRGB(0,255,0));
v[2] = ColorVertex(1.0f, 0.0f, 2.0f, D3DCOLOR_XRGB(0,0,255));
Triangle->Unlock();
fonction Dessin:
Device->SetFVF(ColorVertex::FVF);
Device->SetStreamSource(0,Triangle,0,sizeof(ColorVertex));
D3DXMatrixTranslation(&World,-1.25f,0.0f,0.0f);
Device->SetTransform(D3DTS_WORLD,&World);
Device->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
D3DXMatrixTranslation(&World,1.25f,0.0f,0.0f);
Device->SetTransform(D3DTS_WORLD,&World);
Device->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
Device->EndScene();
Device->Present(0,0,0,0);
Cependant, si je change de D3DPT_TRIANGLELIST par exemple à D3DPT_LINELIST il trace une ligne. Si j'utilise D3DPT_POINTLIST, il ne dessine qu'un point (pixel) pour chacun des appels DrawPrimite.
Merci pour toute aide!
Merci pour votre réponse. Mais le ColorVertex est une structure, et puisque je passe toutes les valeurs à l'intérieur il devrait alors mettre x, y, z et la couleur pour 3 points différents. Ensemble, ils forment un triangle lorsque l'application trace une ligne entre eux? – Araw
YES, désolé je n'ai pas répondu à cela très rapidement, mais on dirait que vous avez compris ce que je voulais dire – jcoder