使用顶点数组指定的顶点数据存储在客户端内存中。 此数据必须从客户端内存复制到图形内存时 绘制调用,如glDrawArrays或glDrawElements。 和光栅化。” 然而,如果我们不这样做会好得多 在每个绘制调用上复制顶点数据,但可以缓存 图形存储器中的数据。 这种方法可以显著地改进 同时也降低了内存带宽和渲染性能 功耗要求,这两者都是非常重要的 手持设备。 这就是顶点缓冲对象可以提供帮助的地方。 顶点 缓存对象允许OpenGL ES 3.0应用程序分配和缓存 顶点数据在高性能图形内存和渲染从这 内存,从而避免每次绘制原语时重新发送数据。 不仅是顶点数据,还有用来描述的元素索引
原语的顶点索引,并作为参数传递给 glDrawElements,可以被缓存。 OpenGL ES 3.0支持两种类型的缓冲对象 指定顶点和原始数据:数组缓冲对象和元素数组
缓冲区对象。 GL_ARRAY_BUFFER指定的数组缓冲区对象 令牌用于创建存储顶点数据的缓冲区对象。 的 GL_ELEMENT_ARRAY_BUFFER指定的元素数组缓冲区对象
顶点缓冲对象141 令牌用于创建存储原语索引的缓冲区对象。
OpenGL ES 3.0中的其他缓冲区对象类型将在本文的其他部分进行描述
关注用于指定顶点的缓冲对象 属性和元素数组。
注意:为了获得最好的性能,我们建议使用OpenGL ES 3.0
应用程序为顶点属性数据和
元素指标。
在我们可以使用缓冲区对象渲染之前,我们需要分配
缓冲对象,并上传顶点数据和元素索引到
合适的缓冲区对象
1