2008-11-06 44 views
1

我有一个数组,其中包含我使用顶点缓冲区对象复制到GPU的顶点列表。然而,顶点坐标本身是没有意义的,因为我也有一个整数数组,其中包含一系列索引到顶点数组中。在OpenGL ES 1.x中使用顶点缓冲对象时,我可以使用索引基元吗?

在这种情况下是有可能创建另一个缓冲区对象来存储的索引,然后在渲染功能绑定两个顶点数组和索引数组,附图中:

//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参数解释为指向客户端内存的指针,而是将其解释为缓冲区对象内的偏移量基本机器单位“。

我对图形编程非常新颖,所以如果任何这些都没有意义,请道歉。

回答

2

是的,这是可能的。 The official tutorial应该帮助你。他们建议不要使用无符号字节,坚持16或32位索引以提高速度。

+0

我不确定32位索引在ES中是否可行。 – WindRider 2013-07-27 18:05:59

相关问题