1、简单概念:
- 1、OpenGL主要是将应用数据变成我们所看到的画面,这样的过程称为渲染。
- 2、帧缓存:在渲染过程中,图形加速器一般都有一个预先分配好的内存区域来维护显示列表内容(译者:注意,不一定是主内存)。它由显示内存和脱屏内存组成。随着OpenGL的渲染而改变内容的那一部分图形内存区域叫做帧缓存(frame buffer)。
- 3、CPU将数据复制到OpenGL ES的缓存中,GPU获取到缓存之后进行处理,处理完的数据最后返还给CPU,GPU的运算能力是比GPU慢的,所以GPU处理数据的同时,CPU也能过继续执行程序。
2、为缓存提供数据的七个步骤
- 1 、 生成一个缓存的标识符
glGenBuffers(标识符数量,标识符的名字的地址);
- 2 、把标识符的缓存指向当前缓存
glBindBuffer(缓存的类型,标识符);
第一个参数表示哪一种类型的缓存,只支持两种缓存,一种是GL_ARRAY_BUFFER
和GL_ELEMENT_ARRAY_BUFFER
,
GL_ARRAY_BUFFER
主要用于顶点属性数组,第二个参数为标识符 - 3、复制数据到缓存中
glBufferData(缓存的类型,数据的大小,数据的地址,缓存在运算中的用途);
- 4、是否启用缓存中的数据
glEnableVertexAttribArray(提供的数据形式)
,是一个枚举,值分别为:GLKVertexAttribPosition
,GLKVertexAttribNormal
,GLKVertexAttribColor
,GLKVertexAttribTexCoord0
,GLKVertexAttribTexCoord1
- 5、告诉OpenGL ES在缓存中的数据的信息
glVertexAttribPointer(顶点的位置信息,每个顶点位置的部分数量,GL_FLOAT,GL_FALSE,步幅,访问数据的地址)
- 6、绘图
glDrawArrays(绘制的场景,顶点的位置,渲染顶点的数量)
- 7、删除已经生成的缓存及释放相关的资源
glDeleteBuffers(标识符的数量,标识符)
- 8、OpenGLES的顶点坐标系的值的范围是-1.0f到1.0f。当我们需要判断边界的时候可以使用-1.0f到1.0f来进行判断