在OpenGL ES 1.x中使用顶点缓冲区对象时,我可以使用索引基元吗?
题
我有一个数组,其中包含一个顶点列表,我使用顶点缓冲区对象将其复制到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位索引来提高速度。
不隶属于 StackOverflow