Posso usare le primitive indicizzate quando uso oggetti buffer vertici in OpenGL ES 1.x?

StackOverflow https://stackoverflow.com/questions/268035

  •  06-07-2019
  •  | 
  •  

Domanda

Ho un array che contiene un elenco di vertici che copio nella GPU usando un oggetto buffer vertici. Tuttavia le coordinate dei vertici da sole non hanno senso poiché ho anche un array intero che contiene un elenco di indici nell'array di vertici.

In questo scenario è possibile creare un altro oggetto buffer per memorizzare gli indici e quindi nella funzione di rendering associare sia l'array di vertici che l'array di indici per il disegno:

//vertex coordinates
glBindBuffer(GL_ARRAY_BUFFER, bufferId1);         
//index coordinates
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, bufferId2); 

glVertexPointer(3, GL_FLOAT, 0, 0);
//Not sure if this should be Unsigned BYTE or Unsigned SHORT
glDrawElements(GL_POINTS, 6, GL_UNSIGNED_BYTE, 0);  

Ho letto l'API e mi confuso quanto segue:
" Mentre un oggetto buffer diverso da zero è associato al target GL_ELEMENT_ARRAY_BUFFER, il parametro degli indici di glDrawElements che viene tradizionalmente interpretato come un puntatore alla memoria lato client viene invece interpretato come un offset all'interno dell'oggetto buffer misurato nella macchina di base . unità "

Sono abbastanza nuovo nella programmazione grafica, quindi scusati se qualcosa di tutto ciò non ha senso.

È stato utile?

Soluzione

Sì, questo è possibile. Il tutorial ufficiale dovrebbe aiutarti. Sconsigliano di utilizzare byte senza segno, attenersi a indici a 16 o 32 bit per la velocità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top