如果不想安逸的被淘汰,那就奋不顾身的去努力
前言
这里是一篇新手教程,是第一篇记录学习OpenGL ES的开始,很幸运现在很多关于这方面的博客文章可以借鉴学习,不幸的是自己荒废了很多时间,现在的环境是Xcode11 + OpenGL ES 3.0,目标是绘制一个长方形。
效果展示
具体细节
1.新建OpenGL ES上下文
2.顶点数组
顶点数组指定每个顶点的属性,是保存在应用程序地址空间的缓冲区,它们作为顶点缓冲区对象的基础,提供指定顶点属性数据的一种高效、灵活的手段,顶点数组用glVertexAttribPointer或glVertexAttribIPointer函数指定。
使用常量顶点属性API设置颜色,glVertexAttrib*命令用于加载index指定的通用属性。
GL_TRIANGLE、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN区别
GL_TRIANGLE:绘制一系列单独的三角形。 (v0,v1,v2),(v1,v2,v3) GL_TRIANGLE_STRIP:绘制一系列相互连接的三角形。 (v0,v1,v2),(v2,v1,v3) GL_TRIANGLE_FAN:绘制一系列相连的三角形。 (v0,v1,v2),(v0,v2,v3)
注意以上三种方式的顶点顺序,GL_TRIANGLE 任意指定顶点的顺序,GL_TRIANGLE_STRIP描述的是相接,即绘制多个三角形时,以上一个三角形的最后一个顶点为起始,GL_TRIANGLE_FAN 描述的是相连,即绘制多个三角形的第一个顶点相同,可自行参照Demo理解实现。
总结
- 1.存储顶点属性数据有两种常用的方法:结构数组和数组结构,在大部分情况下,这两种方法中结构数组是比较高效的,原因是,每个顶点属性可以按照顺序读取,这将可能造成高效的内存读取方式,具体的实现方式后续将会实现。
- 2.在这里我们使用了6个顶点绘制了两个三角形组成的长方形,我们还可以使用索引,减少重复的顶点,使用4个顶点绘制,具体的实现方式后续将会实现。
以上使用顶点数组绘制了个简单的长方形,代码里有相关的注释,可以自行理解,有什么问题错误,可私信留言交流,万分感谢。