OpenGL ES-GLKit框架相关API解析
一、OpenGL ES概念
OpenGL ES(OpenGL for Embeded Systems)是以嵌入式为目标的高级3D图形应用程序编程接口,是智能手机中占据统治地位的图形API。支持iOS、Android、BlackBerry、Linux、Windows等平台。
用于可视化的二维和三维数据。支持2D和3D数字内容创建、机械和建筑设计、虚拟原型设计、飞行模拟、视频游戏开发等应用程序。
开发者可以使用OpenGL配置3D图形管道,并向其提交数据。顶点被变换和点亮,组合成图元,并进行光栅化为2D图像,最终显示在屏幕上。
OpenGl旨在将函数调用转换为可发送到底层图形硬件的图形命令,由于该底层硬件专用于处理图形命令,所以OpenGL绘图效率非常高。
相对于OpenGL,OpenGL ES是OpenGL的简化版本,消除了冗余功能,提供了一个既易于学习又易于在移动图形硬件中实现的库。
二、OpenGL ES版本
目前OpenGL ES已经发布了四个版本:OpenGL ES 1.0、OpenGL ES 1.1、OpenGL ES 2.0和OpenGL ES 3.0。
- OpenGL ES 1.0与OpenGL ES 1.1采用固定功能管线,分别从OpenGL 1.3和1.5规范衍生而来。
- OpenGL ES 2.0采用可编程图形管线。从OpenGL 2.0衍生而来。
- OpenGL ES 3.0是手持图形革命的下一个步骤,从OpenGL 3.3衍生而来。
OpenGL ES图形管线绘制流程同OpenGL,具体可阅读前面OpenGL文章:OpenGL–渲染流程解析
三、GLKit框架
GLKit 框架的设计目标是为了简化基于OpenGL / OpenGL ES的应用开发。它的出现加快OpenGL ES或OpenGL应用程序开发。 使⽤数学库,背景纹理加载,预先创建的着色器效果,以及标准视图和视图控制器来实现渲染循环。GLKit框架提供了功能和类,可以减少创建新的基于着⾊器的应用程序所需的⼯作量,或者支持依赖早期版本的OpenGL ES或OpenGL提供的固定函数顶点或片段处理的现有应用程序。
- GLKView类提供绘制场所(View)。
- GLKViewController类扩展于标准的UIKit设计模式.,用于绘制视图内容的管理与呈现。
虽然苹果启用了OpenGL ES,但是iOS开发者仍然可继续使用该框架进行图形开发。
四、GLKit相关API
1.使用GLKit视图呈现OpenGL ES内容
2.GLKit 功能
- 加载纹理
- 提供⾼性能的数学运算
- 提供常⻅的着色器
- 提供视图以及视图控制器
3.相关代码
配置GLKit视图
-(void