¿Puedo usar primitivas indexadas cuando uso objetos de búfer de vértices en OpenGL ES 1.x?

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo una matriz que contiene una lista de vértices que copio a la GPU usando un objeto de búfer de vértices. Sin embargo, las coordenadas de vértice por sí solas no tienen sentido ya que también tengo una matriz de enteros que contiene una lista de índices en la matriz de vértices.

En este escenario, es posible crear otro objeto de almacenamiento intermedio para almacenar los índices y luego, en la función de representación, vincular tanto la matriz de vértices como la matriz de índices para dibujar:

//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);  

He leído la API y lo siguiente me confundió:
" Mientras que un objeto de búfer distinto de cero está vinculado al objetivo GL_ELEMENT_ARRAY_BUFFER, el parámetro de índices de glDrawElements que tradicionalmente se interpreta como un puntero a la memoria del lado del cliente se interpreta como un desplazamiento dentro del objeto de búfer medido en la máquina básica unidades.

Soy bastante nuevo en la programación de gráficos, así que discúlpeme si algo de esto no tiene sentido.

¿Fue útil?

Solución

Sí, esto es posible. El tutorial oficial debería ayudarlo. Recomiendan no usar bytes sin signo, quédese con índices de 16 o 32 bits para la velocidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top