Réponse acceptée !
Salut,
Attention !
Un sommet (vertice) est un ensemble de données qui concerne un point, c'est à
dire :
des positions, des normales, des binormales, des tangentes, des couleurs, des
coordonnées textures, des constantes, bref TOUT ce qu'on veut.
La plupart du temps (1 position, 1 normale, 1 couple de coordonnées textures, 1
couleur).
Chaque donnée est caractérisée (entre autres) par un usage (ex: position) et un format (ex: 3 floats).
1. Récupérer la déclaration des vertices:
LPDIRECT3DVERTEXDECLARATION9 m_pVertexDeclaration;
UINT uiMaxSize = MAX_FVF_DECL_SIZE;
D3DVERTEXELEMENT9
m_Declaration[uiMaxSize ]; // permet d'accéder à l'usage et
GetVertexDeclaration(&m_pVertexDeclaration);
m_pVertexDeclaration->GetDeclaration(m_Declaration, &uiMaxSize );
2.
Localiser les informations sur la
position de chaque vertice:
J'ai pas fait de code dessus. Regarde les propriétés de D3DVERTEXELEMENT9 et tu
comprendras comment procéder.
3. Lire et d'ecrire sur le vertex buffer
void *pVertices; //
pointeur pour pointer les vertices
m_pVertexBuffer->Lock(0, m_dwNumBytePerVertex*m_dwNumVertices,
&pVertices, 0); // récupération de l'adresse des vertices
// . écriture ou lecture
m_pVertexBuffer->Unlock(); // on débloque le buffer
Avec ça tu as de quoi trouve ton bonheur.
Si j'ai le temps je ferais une source dessus.