前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenGLES_入门01_创建第一个工程

OpenGLES_入门01_创建第一个工程

作者头像
酷走天涯
发布2018-09-14 14:41:40
4380
发布2018-09-14 14:41:40
举报

学习是一件开心的额事情

今天就带这个大家把OpenGL 用原始的方法创建一下,之后我们会使用苹果给我封装的类做,简化操作!

学习目标

创建一个OpenGL 工程,用黄色渲染视图

实现步骤

1.创建工程(一个普通的工程就行) 2.创建一个视图(继承UIView) 3.设置这个视图的Layer层为CAEAGLLayer 类型 4.创建一个管理OpenGL的上下文,并设置为当前上下文 5.创建渲染缓冲区 6.创建帧缓冲区 7.将渲染缓冲区关联到帧缓冲区中去 8.将渲染缓冲区绑定到目标layer层上去 9.用指定的颜色清除渲染缓冲区 10.将渲染缓冲区显示出来

开始了
  • 第一步 创建一个工程

让学习成为一种习惯

就是一个普通的工程

  • 第二步 创建一个视图继承UIView(OpenGLView)

让学习成为一种习惯

让学习成为一种习惯

  • 第三步 设置OpenGLView 的layer层为CAEAGLLayer
代码语言:javascript
复制
+(Class)layerClass{
 return [CAEAGLLayer class];
}
  • 第四步 创建一个管理上下文
代码语言:javascript
复制
  context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
  [EAGLContext setCurrentContext:context]; // 设置其为当前OpenGL 渲染的管理上下文
  • 第五步 创建渲染缓冲区
代码语言:javascript
复制
glGenRenderbuffers(1, &colorRenderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderBuffer);
  • 第六步 创建帧缓冲区
代码语言:javascript
复制
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
  • 第七步 将帧缓冲区和颜色缓冲区进行关联
代码语言:javascript
复制
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderBuffer);
//检测帧缓冲区有没有创建成功
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
    NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER));
} 
  • 第八步 OpenGL ES渲染缓存对象绑定到layer上
代码语言:javascript
复制
 [context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer];
  • 第九步 清除缓冲区
代码语言:javascript
复制
glClearColor(1, 1, 0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
  • 第十步 将渲染缓冲区呈现出来
代码语言:javascript
复制
[context presentRenderbuffer:GL_RENDERBUFFER];

运行结果:

相信你也运行成功了

总结

完成上面的步骤,如果你运行成功的话,你已经完成了入门工作,这个是最底层的代码了,后面的教程,我们不在使用这种方式写代码,苹果公司给我们提供了更好的方式,下节继续。

代码在这里

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.09.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学习目标
  • 实现步骤
  • 开始了
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档