美文网首页
OpenGL ES 10.0 GL Kit

OpenGL ES 10.0 GL Kit

作者: 数字d | 来源:发表于2019-07-22 14:44 被阅读0次

GLKit 框架设计目标是为了简化OpenGL / OpenGL ES 的应用开发。它的出现加快了OpenGL E�S或OpenGL应用开发。
数学库,背景纹理加载,预先创建着色器效果,以及标准视图和视图控制器来实现渲染循环。

GLKit框架提供了功能和类,可以减少创建的基于着色器的应用程序所需要的工作量,或者支持依赖早期版本的OpenGL ES 或OpenGL 提供的固定着色器来实现渲染循环。

GLKView提供绘制场所(view)
GLKViewController(扩展于标准UIKit设计模式,扩展于UIKit设计模式,用于绘制视图内容的管理于呈现)

苹果弃用OpenGL ES ,但是iOS开发者可以继续使用。

使用GLKit视图呈现OpenGL ES内容:


11.png

GLKit基本代码实现:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //1.初始化上下文&设置当前上下文
    /*
     EAGLContext 是苹果iOS平台下实现OpenGLES 渲染层.
     kEAGLRenderingAPIOpenGLES1 = 1, 固定管线
     kEAGLRenderingAPIOpenGLES2 = 2,
     kEAGLRenderingAPIOpenGLES3 = 3,
     */
    context = [[EAGLContext alloc]initWithAPI:kEAGLRenderingAPIOpenGLES3];
    //判断context是否创建成功
    if (!context) {
        NSLog(@"Create ES context Failed");
    }
    //设置当前上下文
    [EAGLContext setCurrentContext:context];
    
    //2.获取GLKView & 设置context
    GLKView *view =(GLKView *) self.view;
    view.context = context;
    
    //3.设置背景颜色
    glClearColor(1, 0, 0, 1.0);
    
}


#pragma mark -- GLKViewDelegate
//绘制视图的内容
/*
 GLKView对象使其OpenGL ES上下文成为当前上下文,并将其framebuffer绑定为OpenGL ES呈现命令的目标。然后,委托方法应该绘制视图的内容。
*/
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
    glClear(GL_COLOR_BUFFER_BIT);
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

GLKit功能:

加载纹理
提供高性能的数学运算
提供常见的着色器
提供视图以及视图控制器

GLKit纹理加载:
name : OpenGL 上下文中的纹理名称
target: 纹理绑定的目标
height:加载的纹理高度
width:加载的纹理宽度
textureOrgin:加载纹理中的原点位置
alphaState:加载纹理alpha分量状态
containsMipmaps:布尔值,加载纹理是否包含mip贴图

GLTextureLoader简化从各资源中加载纹理
从URL加载纹理:


13.png 14.png 15.png 12.png

相关文章

网友评论

      本文标题:OpenGL ES 10.0 GL Kit

      本文链接:https://www.haomeiwen.com/subject/qrbilctx.html