在OpenGL ES 1.x中使用顶点缓冲区对象时,我可以使用索引基元吗?

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

  •  06-07-2019
  •  | 
  •  

我有一个数组,其中包含一个顶点列表,我使用顶点缓冲区对象将其复制到GPU。然而,顶点坐标本身是没有意义的,因为我还有一个整数数组,其中包含顶点数组中的索引列表。

在这种情况下,可以创建另一个缓冲区对象来存储索引,然后在渲染函数中绑定顶点数组和索引数组进行绘制:

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

我读过api,以下让我困惑:

当一个非零缓冲区对象绑定到GL_ELEMENT_ARRAY_BUFFER目标时,glDrawElements的indices参数(传统上被解释为指向客户端内存的指针)被解释为在基本机器中测量的缓冲区对象内的偏移量。单位"

我对图形编程很陌生,如果其中任何一个没有意义,请道歉。

有帮助吗?

解决方案

是的,这是可能的。 官方教程应该可以帮助您。他们建议不要使用无符号字节,坚持使用16或32位索引来提高速度。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top