iOS-openGLES程序制作基本步骤以及某些API

最近研究了一下ios下的openGLES,给大家分享一下学习经验
openGLES就是openGL的阉割版,就是作者删除了一些自认为没多大作用的API。
openGL是啥,这里就不废话去讲了,我们直奔主题。

我们做OpenGLES的ios开发必须导入两个框架
QuartzCore.framework以及OpenGLES.framework(该框架的所有api都是c语言形式的)
本文分两部分介绍,一部分是基本的编写步骤,第二部分是一些API的展示

OpenGLES程序编写步骤是(以绘制正方形为例)
1、创建一个UIView的子类,并重写下面的方法

+(Class)layerClass

{

    return [CAEAGLLayer class];

}


2、在init的方法中,从
基类获取 layer 属性,并将其转型至 CAEAGLLayer
CAEAGLLayer *  eaglLayer = ( CAEAGLLayer  *) super . layer ;
eaglLayer. opaque  =  YES ;  // 无需 Quartz 处理透明度  

3、建立一个
EAGLContext 对象( GL上下文对象)
EAGLContext * context =  [[ EAGLContext   alloc ] initWithAPI : kEAGLRenderingAPIOpenGLES1 ];
/*
    后面的参数有两个选择
    kEAGLRenderingAPIOpenGLES1=1  表示用渲染库的API版本是1.1
    kEAGLRenderingAPIOpenGLES2=2   表示用 渲染库的API版本是2.0
*/
//设定当期上下文对象
[ EAGLContext   setCurrentContext : m_context ]  
//设定被渲染的层对象
[ m_context   renderbufferStorage : GL_RENDERBUFFER_OES   fromDrawable :eaglLayer];  

4、创建帧缓冲管线以及渲染缓冲管线

//创建渲染缓冲管线

glGenRenderbuffersOES(1, &m_renderBuffer);

//绑定渲染缓冲管线
glBindRenderbufferOES(GL_RENDERBUFFER_OESm_renderBuffer); 

//创建帧缓冲管线

glGenFramebuffersOES(1, &m_frameBuffer);

//绑定帧缓冲管线

glBindFramebufferOES(GL_FRAMEBUFFER_OESm_frameBuffer);

//将渲染缓冲区附加到帧缓冲区上

glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OESGL_COLOR_ATTACHMENT0_OESGL_RENDERBUFFER_OESm_renderBuffer);

//创建显示区域
glViewport
(00, width, height);
//设定矩阵模式
glMatrixMode(GL_PROJECTION); 
//设定投影空间

glOrthof(-maxX, maxX, -maxY, maxY, -11);


5、渲染部分(绘制)

//清除颜色

glClearColor ( 0.5f 0.5f 0.5f 1 );  
//清除
glClear
( GL_COLOR_BUFFER_BIT );  
 //压入矩阵
glPushMatrix ();
//设定特征数组
glEnableClientState ( GL_VERTEX_ARRAY );
//指定顶点

glColor4f(01.0f01);

float triangles[][2] = { { 0,0},{ 0,1},{ 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值