美文网首页
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