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

本文通过十个步骤详细介绍了如何使用原始方法创建OpenGL ES工程,并以黄色渲染视图。从创建工程到最终渲染结果的展示,每一步都附有代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1594482-b48c01309fc13518.PNG
学习是一件开心的额事情

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

学习目标

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

实现步骤

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

开始了
  • 第一步 创建一个工程
1594482-5a98911e8ae6aa0c.png
让学习成为一种习惯
1594482-b995212e30196967.png
就是一个普通的工程
  • 第二步 创建一个视图继承UIView(OpenGLView)
1594482-ded613663732e358.png
让学习成为一种习惯
1594482-7eebc11d25271f10.png
让学习成为一种习惯
  • 第三步 设置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];

运行结果:

1594482-9ed471b515a30301.png
相信你也运行成功了
总结

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

代码在这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值