Utilizzando il tutorial qui, sono riuscito a ottenere un triangolo rosso sul mio schermo: http://www.directxtutorial.com/Lesson.aspx?lessonid=9-4-4Disegnare un rettangolo in Direct X
CUSTOMVERTEX OurVertices[] =
{
{ 0, 0, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) },
{ WIDTH, 0, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) },
{ 0, 300, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) },
{ WIDTH, 300, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) }
};
d3dDevice->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),
0,
CUSTOMFVF,
D3DPOOL_MANAGED,
&vBuffer,
NULL);
VOID* pVoid; // the void* we were talking about
vBuffer->Lock(0, 0, (void**)&pVoid, 0); // locks v_buffer, the buffer we made earlier
memcpy(pVoid, OurVertices, sizeof(OurVertices)); // copy vertices to the vertex buffer
vBuffer->Unlock(); // unlock v_buffer
d3dDevice->SetFVF(CUSTOMFVF);
d3dDevice->SetStreamSource(0, vBuffer, 0, sizeof(CUSTOMVERTEX));
d3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
ma si può vedere che ho molta voglia di essere disegnare un rettangolo.
ho cambiato la primitiva per pescare 2 triangoli e ampliato la dimensione del buffer di 4 * dimensioni del mio custom vertex ma non posso davvero dire ho capito come ottenerlo dal mio triangolo rettangolo al mio vorrei:
c'è un modo migliore di disegnare un rettangolo piuttosto che utilizzare un quad considerando che ho solo voglia di fionda un testo su di esso qualcosa di simile:
Correggetemi se ho torto, ma dovreste avere quattro vertici e un buffer di indice contenente gli indici appropriati per due triangoli per rendere il vostro rettangolo. – chris
Quindi 4 vertici = i 4 punti di un quadrato e un indice è l'ordine con cui disegnarli? Ovviamente sono completamente fresco in questa idea di vertice, potrei avere un po 'di mano per superare questo ostacolo? O forse un esempio di un rettangolo specifico? – Jimmyt1988
Quindi nel tuo buffer di vertici avresti, ad esempio, '{(-2, 2, 0), (2, 2, 0), (2, 1, 0), (-2, 1, 0)} '(in alto a sinistra, in alto a destra, in basso a destra, in basso a sinistra) e il tuo buffer di indice potrebbe contenere' {(0, 1, 3), (3, 1, 2)} '(TL, TR, BL, seguito da BL, TR, BR). Il buffer indice indica semplicemente quali vertici vengono in quale ordine. Si dovrebbe essere consapevoli del fatto che sia CW o CCW anche per il culling. Devi anche aggiungere "SetIndexBuffer" ecc. Perdonami, dato che è passato un po 'di tempo da quando l'ho fatto, e non mi sono mai piaciute tanto quanto le funzioni di mesh premade. – chris