版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.10.05 |
前言
GLKit
框架的设计目标是为了简化基于OpenGL或者OpenGL ES的应用开发。 接下来几篇我们就解析一下这个框架。
框架概览
GLKit
框架的设计目标是为了简化基于OpenGL或者OpenGL ES的应用开发。它的出现加快OpenGL ES或OpenGL应用程序开发。 使用数学库,背景纹理加载,预先创建的着色器效果,以及标准视图和视图控制器来实现渲染循环。
GLKit框架提供了功能和类,可以减少创建新的基于着色器的应用程序所需的工作量,或者支持依赖早期版本的OpenGL ES或OpenGL提供的固定函数顶点或片段处理的现有应用程序。
下面看一下该框架的详细情况。
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包含三个效果:GLKBaseEffect类实现OpenGL ES 1.1着色和照明模型的关键子集,GLKReflectionMapEffect类将基本效果扩展为包含反射映射支持,GLKSkyboxEffect类提供了一个实现
- 对应于GLKit的View和ViewController。
GLKView Class
和GLKViewController Class
。- 视图和视图控制器提供OpenGL ES视图和相应的视图控制器的标准实现。 这减少了创建使用OpenGL ES的iOS应用程序所需的代码量。 有关更多信息,请参阅GLKView
和 GLKViewController。
- 视图和视图控制器提供OpenGL ES视图和相应的视图控制器的标准实现。 这减少了创建使用OpenGL ES的iOS应用程序所需的代码量。 有关更多信息,请参阅GLKView
在iOS上,GLKit需要OpenGL ES 2.0上下文。 在MacOS中,GLKit需要支持OpenGL 3.2 Core Profile
的OpenGL上下文。
2. 框架基本结构
下面我们就看一下框架的基本结构。
框架详述结构
下面我们就看一下框架的详细结构。
1. Texture Loading
-
- 通过类GLKTextureLoader创建的OpenGL ES的纹理信息。
-
- 一个实用工具类,可简化从各种图像文件格式加载OpenGL或OpenGL ES纹理数据。
2. OpenGL ES View Rendering
-
- 使用OpenGL ES绘制内容的视图的默认实现。
-
- 使用GLKView对象的绘制回调方法。
-
- 管理OpenGL ES渲染循环的视图控制器。
-
- 使用
GLKViewController
对象的渲染循环回调方法用于。
- 使用
3. Mesh Data Management
4. Shader-Based Rendering Effects
-
- 提供基于着色器的OpenGL渲染效果的对象的标准界面。
-
- 用于基于着色器的OpenGL渲染中的一个简单的照明和着色系统。
-
- 用于基于着色器的OpenGL渲染的支持反射映射的照明和着色系统。
-
- 用于基于着色器的OpenGL渲染的一个简单的天空盒视觉效果。
5. Rendering Effect Parameters
-
- 用于GLKit渲染效果中使用的配置信息的抽象超类。
-
- GLKit渲染效果中使用的Fog绘制信息。
-
- GLKit渲染效果中使用的照明信息。
-
- GLKit渲染效果中使用的纹理绘制参数。
-
- GLKit渲染效果中使用的表面显示特性。
-
- GLKit渲染效果中使用的坐标转换信息。
6. Math Utilties
-
- 一种不透明的类型,表示4×4矩阵的堆栈,为分级变换建模和类似任务提供支持。
-
- GLKMatrix3类型定义了
3x3
浮点矩阵以及常用于操纵矩阵的许多数学运算。 图形编程中通常使用3x3矩阵来表示从一个坐标系转换为另一个坐标系的缩放或旋转变换。操作GLKMatrix3
结构的函数将输入视为不可变的,而是返回一个表示操作结果的新矩阵。
- GLKMatrix3类型定义了
-
-
GLKVector4
类型定义了一个4分量的浮点向量以及通常用于操纵向量的许多数学运算。 图形编程广泛使用向量来表示位置,法线,颜色和其他数据结构。操作GLKVector4结构的函数将输入视为不可变的,而是返回一个代表操作结果的新向量。
-
-
- GLKQuaternion类型定义了一个表示四元数的结构。 四元数由标量分量s和XYZ向量v定义。在图形编程中经常使用四元数字作为三维对象旋转的紧凑表示。操作GLKQuaternion结构的函数将输入视为不可变的,而是返回代表操作结果的新的四元数。
-
- 该引用包括没有与它们相关联的特定类型的数学例程。
7. Reference
8. Related Documentation
后记
未完,待续~~~
网友评论