GLKit 框架详细解析(一)—— 基本概览

版本记录

版本号 时间
V1.0 2017.10.05

前言

GLKit框架的设计目标是为了简化基于OpenGL或者OpenGL ES的应用开发。 接下来几篇我们就解析一下这个框架。

框架概览

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

GLKit框架提供了功能和类,可以减少创建新的基于着色器的应用程序所需的工作量,或者支持依赖早期版本的OpenGL ES或OpenGL提供的固定函数顶点或片段处理的现有应用程序。

下面看一下该框架的详细情况。

GLKit 框架详细解析(一)—— 基本概览_第1张图片

1. GLKit 主要的功能

GLKit 主要的功能如下:

  • 纹理加载(Texture loading)GLKTextuerLoader Class
    • 纹理加载允许您的应用程序轻松地从各种来源加载纹理。 甚至可以在背景中使用几行代码来异步加载纹理。 有关更多信息,请参阅 GLKTextureLoader。
  • 性能卓越的科学运算库, 支持矢量, 四元数,矩阵运算等。
    • 数学库提供常用的矢量,四元数和矩阵运算。 这些实现被优化以提供出色的性能。
  • 实现常见的标准Shader特效。 GLKit允许你配置你所需要的特效,它会自动创建和加载对应的Shader。
    GLKBaseEffect, GLKReflectionMapEffect, GLKSkyboxEffect Class
    • 效果提供了普通着色效果的标准实现。 您配置效果和相关的顶点数据,该效果创建并加载适当的着色器。 GLKit包含三个效果:GLKBaseEffect类实现OpenGL ES 1.1着色和照明模型的关键子集,GLKReflectionMapEffect类将基本效果扩展为包含反射映射支持,GLKSkyboxEffect类提供了一个实现skybox效果。
  • 对应于GLKit的View和ViewController。 GLKView ClassGLKViewController Class
    • 视图和视图控制器提供OpenGL ES视图和相应的视图控制器的标准实现。 这减少了创建使用OpenGL ES的iOS应用程序所需的代码量。 有关更多信息,请参阅GLKView
      和 GLKViewController。

在iOS上,GLKit需要OpenGL ES 2.0上下文。 在MacOS中,GLKit需要支持OpenGL 3.2 Core Profile的OpenGL上下文。

2. 框架基本结构

下面我们就看一下框架的基本结构。

GLKit 框架详细解析(一)—— 基本概览_第2张图片
GLKit 框架详细解析(一)—— 基本概览_第3张图片

框架详述结构

下面我们就看一下框架的详细结构。

1. Texture Loading

  • GLKTextureInfo

    • 通过类GLKTextureLoader创建的OpenGL ES的纹理信息。
  • GLKTextureLoader

    • 一个实用工具类,可简化从各种图像文件格式加载OpenGL或OpenGL ES纹理数据。

2. OpenGL ES View Rendering

  • GLKView

    • 使用OpenGL ES绘制内容的视图的默认实现。
  • GLKViewDelegate

    • 使用GLKView对象的绘制回调方法。
  • GLKViewController

    • 管理OpenGL ES渲染循环的视图控制器。
  • GLKViewControllerDelegate

    • 使用GLKViewController对象的渲染循环回调方法用于。

3. Mesh Data Management

  • GLKMesh
  • GLKMeshBuffer
  • GLKMeshBufferAllocator
  • GLKSubmesh

4. Shader-Based Rendering Effects

  • GLKNamedEffect

    • 提供基于着色器的OpenGL渲染效果的对象的标准界面。
  • GLKBaseEffect

    • 用于基于着色器的OpenGL渲染中的一个简单的照明和着色系统。
  • GLKReflectionMapEffect

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

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

5. Rendering Effect Parameters

  • GLKEffectProperty

    • 用于GLKit渲染效果中使用的配置信息的抽象超类。
  • GLKEffectPropertyFog

    • GLKit渲染效果中使用的Fog绘制信息。
  • GLKEffectPropertyLight

    • GLKit渲染效果中使用的照明信息。
  • GLKEffectPropertyTexture

    • GLKit渲染效果中使用的纹理绘制参数。
  • GLKEffectPropertyMaterial

    • GLKit渲染效果中使用的表面显示特性。
  • GLKEffectPropertyTransform

    • GLKit渲染效果中使用的坐标转换信息。
  • GLKit Effects Constants

6. Math Utilties

  • GLKMatrixStackRef

    • 一种不透明的类型,表示4×4矩阵的堆栈,为分级变换建模和类似任务提供支持。
  • GLKMatrix3

    • GLKMatrix3类型定义了3x3浮点矩阵以及常用于操纵矩阵的许多数学运算。 图形编程中通常使用3x3矩阵来表示从一个坐标系转换为另一个坐标系的缩放或旋转变换。操作GLKMatrix3结构的函数将输入视为不可变的,而是返回一个表示操作结果的新矩阵。
  • GLKMatrix4

  • GLKVector2

  • GLKVector3

  • GLKVector4

    • GLKVector4类型定义了一个4分量的浮点向量以及通常用于操纵向量的许多数学运算。 图形编程广泛使用向量来表示位置,法线,颜色和其他数据结构。操作GLKVector4结构的函数将输入视为不可变的,而是返回一个代表操作结果的新向量。
  • GLKQuaternion

    • GLKQuaternion类型定义了一个表示四元数的结构。 四元数由标量分量s和XYZ向量v定义。在图形编程中经常使用四元数字作为三维对象旋转的紧凑表示。操作GLKQuaternion结构的函数将输入视为不可变的,而是返回代表操作结果的新的四元数。
  • GLKit Math Utilities

    • 该引用包括没有与它们相关联的特定类型的数学例程。

7. Reference

  • GLKit Structures
  • GLKit Enumerations
  • GLKit Constants
  • GLKit Functions
  • GLKit Data Types

8. Related Documentation

  • OpenGL ES Programming Guide, OpenGL Programming Guide for Mac

后记

未完,待续~~~

GLKit 框架详细解析(一)—— 基本概览_第4张图片

你可能感兴趣的:(GLKit 框架详细解析(一)—— 基本概览)