美文网首页
iOS开发之OpenGL ES (十) GLKit详解

iOS开发之OpenGL ES (十) GLKit详解

作者: Hiphone_e365 | 来源:发表于2019-06-09 12:26 被阅读0次

1、GLKit简介

GLKit框架的设计目标是苹果为了简化OpenGL/OpenGL ES 的应用开发。加快OpenGL/OpenGL ES的开发速度,使用数学库,背影纹理加载,预先创建的着色器效果,以及标准视图(GLKView)和试图控制器(GLKViewController)来实现渲染循环

2、GLKIT关键特性

关于纹理

苹果封装了GLKTextureLoader类进行纹理加载,只需几行代码,可以轻松的加载各种纹理资源,甚至可以在app后台异步加载。

关于数学计算

数学库提供了向量、四元数、矩阵运算等。计算获得优化以提供较好的性能

关于着色器

苹果提供Effect类实现着色器效果。主要包括三个着色效果如下,用来解决着色器复杂的用法,可以了解下GLSL的复杂

GLKBaseEffect:在GLKit中使用最高频。提供了投影光照和着色的功能,提供了三个光照(light0,light1,light2),两个纹理(texture2d0,texture2d1)。如果这些不满足需求,则需要自定义着色器。

GLKReflectionMapEffect用于基于着色器的OpenGL渲染的支持反射映射的照明和着色系统

GLKSkyboxEffect:用于基于着色器的OpenGL渲染的一个简单的天空盒视觉效果

关于视图

GLKViewGLKViewController 提供OpenGL ES视图和试图控制器的实现。减少了OpenGL ES创建 iOS应用程序所需的代码量(比如GLSL创建program那些)

3、GLKIT呈现OpenGL ES的内容

要想用GLKView,首先为其提供OpenGL ES上下文。然后设置颜色缓冲区格式drawableColorFormat,深度缓冲区格式drawableDepthFormat,模板缓冲区格式drawableStencilFormat,多重采样缓冲区格式drawableMultisample,通过以上设置来配置帧缓冲区格式(framebuffer)。然后,只要是此GLView需要重新绘制的时候,它就会自动创建或者更新framebuffer。

说到View的重新绘制,那就是drawRect方法,当调用drawRect之前,上面说了,首先为其提供OpenGL ES上下文,绑定它的framebuffer到OpenGL的上下文作为渲染命令的target,一旦此渲染命令告知绘制返回,就会将数据传递到Core Animation实现画面。

app的drawRect方法,应该调用一个或者多个OpenGL ES函数将对象呈现到framebuffer上,此时,视图解析通过多重采样(multisampling)来完成传递。有一点要注意的是,绘图方法只能修改framebuffer的内容,不能从framebuffer中读取像素信息,或者修改framebuffer对象。或者修改OpenGL ES函数的其他属性。相反我们要依赖GLView提供的属性和方法。

4、(GLKView)和试图控制器(GLKViewConitroller)以及案例解析

首先要创建继承于GLKViewController的视图,总共大致分三部 + 一部绘制

1、OpenGL ES初始化

2、加载顶点、纹理坐标数据

3、加载纹理

4、绘制纹理

源码地址:https://github.com/Hiphone-Du/GLKit

备注:图片引用:简书@CC老师_HelloCoder

相关文章

  • 初识GLKit

    GLKit 框架是为了简化iOS上OpenGL ES的开发,提供的基于OpenGL ES的iOS框架。 实现思路:...

  • iOS开发之OpenGL ES (十) GLKit详解

    1、GLKit简介 GLKit框架的设计目标是苹果为了简化OpenGL/OpenGL ES 的应用开发。加快Ope...

  • GLES-02-GLKit

    一、了解GLKit GLKit 框架的设计目的:是为了简化基于OpenGL / OpenGL ES 的应⽤开发.。...

  • 用GLKit写出旋转的效果

    GLKit    GLKit 框架的设计⽬标是为了简化基于OpenGL / OpenGL ES 的应⽤开发 。它的...

  • GLKit的API解析

    GLKit框架的设计是为了简化iOS开发者基于OpenGL/OpenGL ES的应用开发,应用该框架提供的功能和类...

  • GLKit 常用API 解析

    GLKit 简介 GLKit是苹果iOS 5引入的一个为简化OpenGL ES的使用的框架,它为OpenGL ES...

  • GLKit渲染图片

    1. GLKit概述 GLKit 框架的设计⽬标是为了简化基于OpenGL / OpenGL ES 的应⽤开发 。...

  • OpenGL ES初探(下)

    1、GLKit框架简介 GLKit 框架的设计⽬标是为了简化基于 OpenGL / OpenGL ES 的应用开发...

  • 0010--OpenGL ES初探:GLKit 框架

    GLKit 框架概述 GLKit 框架的设计⽬标是为了简化基于OpenGL / OpenGL ES 的应⽤开发。它...

  • GLKit 基本API

    GLKit GLKit 框架的设计⽬标是为了简化基于OpenGL / OpenGL ES 的应⽤用开发.使⽤数学库...

网友评论

      本文标题:iOS开发之OpenGL ES (十) GLKit详解

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