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

学习是一件开心的额事情

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

学习目标

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

实现步骤

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

开始了

  • 第一步 创建一个工程
让学习成为一种习惯
就是一个普通的工程
  • 第二步 创建一个视图继承UIView(OpenGLView)
让学习成为一种习惯
让学习成为一种习惯
  • 第三步 设置OpenGLView 的layer层为CAEAGLLayer
+(Class)layerClass{
 return [CAEAGLLayer class];
}
  • 第四步 创建一个管理上下文
  context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
  [EAGLContext setCurrentContext:context]; // 设置其为当前OpenGL 渲染的管理上下文
  • 第五步 创建渲染缓冲区
glGenRenderbuffers(1, &colorRenderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderBuffer);
  • 第六步 创建帧缓冲区
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
  • 第七步 将帧缓冲区和颜色缓冲区进行关联
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上
 [context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer];
  • 第九步 清除缓冲区
glClearColor(1, 1, 0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
  • 第十步 将渲染缓冲区呈现出来
[context presentRenderbuffer:GL_RENDERBUFFER];

运行结果:

相信你也运行成功了

总结

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

代码在这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容