知识点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);
分享到:
相关推荐
package ljh.opengl;是对OpenglES的一些封装。 package ljh.game;是对一些游戏常用的代码的封装 都没写完! 最近改学IOS了 看看什么时候能补充完。
### OpenGL ES 2.0 学习笔记 #### 一、概述 《OpenGL ES 2.0 学习笔记》是一份针对英文版《OpenGL ES 2.0 Programming Guide》的阅读总结,旨在帮助读者更好地理解和掌握OpenGL ES 2.0的核心概念和技术要点。以下...
Android OpenGL ES学习笔记之绘制一个立方体-附件资源
最后,了解如何与硬件加速的OpenGLES API交互,以及熟悉GLSL语言(OpenGL Shading Language),是成为OpenGL ES 2.0专家的必经之路。通过编写高效、可读性强的着色器代码,可以创造出各种复杂的视觉效果,实现令人...
OpenGL ES 2.0 是移动设备上的一个图形库标准,用于在智能手机、平板电脑等设备上进行3D和2D图形渲染。它基于OpenGL规范,但针对嵌入式系统的资源限制进行了优化。以下是对OpenGL ES 2.0关键概念和操作的详细说明: ...
这个“OpenGL ES学习阶段性总结”很可能是作者在深入研究OpenGL ES过程中的一些心得和经验分享。从标签“源码”和“工具”来看,这篇博文可能涉及到了实际代码示例和一些辅助开发的工具。 在OpenGL ES的学习中,有...
OpenGL ES 2.0是移动设备和嵌入式系统上广泛应用的图形库,它是OpenGL标准的一个子集,专为资源有限但需要高质量3D图形处理能力的设备设计。这个开发包包含了必要的工具类和资源,有助于Android游戏开发者构建高性能...
现代OpenGL+Qt学习笔记之二:程序框架http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77917697源码。
在本篇“Android OpenGL 学习笔记(一)”中,我们将探讨如何在Android平台上使用OpenGL ES进行图形渲染。OpenGL ES是OpenGL的一个轻量级版本,专为嵌入式系统设计,包括移动设备如智能手机和平板电脑。这篇笔记将...
【描述】中提到,"Barrage_OpenGLES源码"是一个有价值的Android代码示例,适合对游戏编程感兴趣的开发者进行学习和研究。源码提供了实现游戏功能的具体细节,包括对象的创建、动画效果的实现、碰撞检测、用户交互等...
它在OpenGLES的基础上运行,后者是OpenGL的嵌入式版本,适用于移动设备和嵌入式系统。OpenGL的核心概念是它采用客户端-服务端模式,其中客户端是程序员编写的程序,而服务端是图形硬件,如GPU,负责处理复杂的图形...
为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...
**NDK学习笔记** NDK(Native Development Kit)是Android开发的一部分,它允许开发者使用C和C++编写原生代码。这在需要高性能计算、利用硬件加速或复用现有C/C++库时特别有用。例如,游戏引擎、音频/视频处理库...
SDL2和OpenGL使用踩坑笔记经验分享 本文分享了作者在使用SDL2和OpenGL开发LFTK嵌入式GUI时踩过的一些坑,包括显示模糊的问题、nanovg裁剪算法无效和Windows下的OpenGL函数找不到等问题。作者通过研究SDL2和OpenGL的...
根据提供的文件内容,这是一份详细的Android学习笔记,涵盖了从基础入门到高级特性的各个知识点。以下是从这些内容中提取的知识点: 1. Android入门基础: - 建立第一个App:介绍如何创建Android项目和执行程序。 ...
本篇学习笔记主要涵盖了ArcGIS for Android的基础配置和核心组件MapVie的使用。 首先,配置ArcGIS for Android项目需要在`Project`级别的`build.gradle`文件中添加Esri的仓库,确保能获取到所需的库。接着,在`...