OpenGLES学习笔记

 

知识点1:

OpenGL初始化时,需要定义两个OpenGL类型变量,一个是renderbuffer,另一个是framebuffer。简要说明一下,renderbuffer是一个2维结构,里面存一些数据(在此存的是颜色数据),framebuffer就不用说了,其中framebuffer是捆绑了多个renderbuffer的结构。

 

创建好framebuffer与renderbuffer后,紧接着就将它们与渲染通道进行绑定,当然我们也可以在后续操作中对其进行修改或取消绑定。绑定完成后,向EAGLContext的实例发送一个renderbufferStorage消息就可以创建一个storage

 

 

知识点2:

OpenGL的“clear”机制可以帮我们将buffer填充为单一纯色。首先选定填充的颜色为灰色,有四个值(红,黄,蓝,alpha)。接着就用选定的颜色填充buffer。使用

 

glClearColor(0.5f, 0.5f, 0.5f, 1);

 

定义颜色为灰色;使用

 

glClear(GL_COLOR_BUFFER_BIT); 

 

将颜色清到缓冲区里面,即我们定义的renderbuffer;使用  

 

[context presentRenderbuffer:GL_RENDERBUFFER_OES];
 

让EAGLContext对象将renderbuffer的内容显示到屏幕上。大多数的OpenGL程序都是先渲染到一个缓冲区内,然后以原子操作的方式显示到屏幕。

 

知识点3:

 

我们经常要用的点和颜色值,使用

 

 glEnableClientState(GL_VERTEX_ARRAY);
 

启用顶点属性;使用

 

glEnableClientState(GL_COLOR_ARRAY);
 

启用颜色属性。之后,就需要向OpenGL传递顶点和颜色啦:

 

glVertexPointer(2, GL_FLOAT, sizeof(Vertex), vertices);
glColorPointer(4, GL_FLOAT, sizeof(Vertex), colors);

 

接下来将绘制顶点和颜色:

 

GLsizei vertexCount = sizeof(Vertices) / sizeof(Vertex);
glDrawArrays(GL_TRIANGLES, 0, vertexCount)
 

调用glDrawArrays这个方法的第一个参数为GL_TRIANGLES,第二个为0表示从顶点数组第一个位置开始,第三个参数vertexCount表示顶点个数。这个方法调用这前,得先调用gl*Pointer这样的方法获取顶点属性。

 

最后,将禁止顶点和颜色这两个属性,只有在绘制之前才会开启这些属性。在复杂的应用当中,可以在后续绘制中会用到复多的顶点属性,所以我们在用完顶点属性后得恢复到原始状态。由于我们这个应用简单,在此如果你不恢复也没事,但是我们得养成良好的编成习惯:

 

glDisableClientState(GL_VERTEX_ARRAY);  
glDisableClientState(GL_COLOR_ARRAY);
 

 

 

 

 

你可能感兴趣的:(OpenGL)