GLKit
GLKit 框架的设计⽬标是为了简化基于OpenGL / OpenGL ES 的应⽤用开发.使⽤数学库,背景纹理加载,预先创建的着⾊器效果,以及标准视图和视图控制器来实现渲染循环。
iOS已经启用OpenGL ES 但并不影响我们继续学习和使用。
GLKit的功能
- 提供高性能的数学运算。
- 加载纹理。
- 提供常见的着色器。
- 提供视图以及视图控制器器。
相关类和API
GLKTextureInfo 纹理信息
name : OpenGL 上下⽂文中纹理理名称
target : 纹理理绑定的⽬目标
height : 加载的纹理理⾼高度
width : 加载纹理理的宽度
textureOrigin : 加载纹理理中的原点位置
alphaState: 加载纹理理中alpha分量量状态
containsMipmaps: 布尔值,加载的纹理理是否包含mip贴图
GLTextureLoader 纹理加载
+ textureWithContentsOfFile:options:errer: 从⽂件加载2D纹理图像并从数据中创建新的纹理
- textureWithContentsOfFile:options:queue:completionHandler: 从⽂文件中异步加载2D纹理图像,并根据数据创建新纹理
- textureWithContentsOfURL:options:error: 从URL 加载2D纹理图像并从数据建新纹理
- textureWithContentsOfURL:options:queue:completionHandler: 从URL异步加载2D纹理图像,并根据数据创建新纹理
+ textureWithContentsOfData:options:errer: 从内存空间加载2D纹理图像,并根据数据创建新纹理
- textureWithContentsOfData:options:queue:completionHandler:从内存空间异步加载2D纹理图像,并从数据中创建新纹理
GLKView 绘制内容的视图默认实现
常用属性和方法
delegate
drawableColorFormat 颜⾊色渲染缓存区格式
drawableDepthFormat 深度渲染缓存区格式
drawableStencilFormat 模板渲染缓存区的格式
drawableMultisample 多重采样缓存区的格式
drawableHeight 底层缓存区对象的⾼度(以像素为单位)
drawableWidth 底层缓存区对象的宽度(以像素为单位)
context 绘制视图内容时使⽤用的OpenGL ES 上下⽂文
- bindDrawable 将底层FrameBuffer 对象绑定到OpenGL ES
enableSetNeedsDisplay 布尔值,指定视图是否响应使得视图内容⽆无效的消息
- display ⽴立即重绘视图内容
snapshot 绘制视图内容并将其作为新图像对象返回
GLKViewController
- (void) update 更更新视图内容
- (void) glkViewControllerUpdate:
preferredFramesPerSecond 视图控制器调⽤视图以及更新视图内容的速率
framesPerSencond 视图控制器调用视图以及更新其内容的实际速率
delegate
paused 布尔值,渲染循环是否已暂停
pausedOnWillResignActive 布尔值,当前程序重新激活动状态时视图控制器是否⾃动暂停渲染循环
resumeOnDidBecomeActive 布尔值,当前程序变为活动状态时视图控制是否⾃动恢复呈现循环
frameDisplayed 视图控制器自创建以来发送的帧更新数
timeSinceFirstResume ⾃视图控制器第⼀次恢复发送更新事件以来经过的时间量
timeSinceLastResume ⾃上次视图控制器恢复发送更新事件以来更新的时间量
timeSinceLastUpdate ⾃上次视图控制器调用委托⽅法以及经过的时间量量
glkViewControllerUpdate:
timeSinceLastDraw ⾃上次视图控制器调⽤视图display 方法以来经过的时间量
GLKViewControllerDelegate
- glkViewControllerUpdate: 在显示每个帧之前调⽤
- glkViewController : willPause: 在渲染循环暂停或恢复之前调用.
GLKBaseEffect
(类似固定着色器的理解)
label 给Effect(效果)命名配置模型视图转换
transform 绑定效果时应用于顶点数据的模型视图,投影和纹理变换配置光照效果
lightingType ⽤于计算每个⽚段的光照策略略,GLKLightingType
GLKLightingTypePerVertex 表示在三⻆角形中每个顶点执⾏行行光照计算,然后在三⻆角形进⾏行行插值
GLKLightingTypePerPixel 表示光照计算的输⼊在三⻆形内插入,并且在每个⽚段执⾏光照计算
lightModelTwoSided 布尔值,表示为基元的两侧计算光照
material 计算渲染图元光照使⽤的材质属性
lightModelAmbientColor 环境颜色,应⽤效果渲染的所有图元.
light0 场景中第⼀个光照属性
light1 场景中第二个光照属性
light2 场景中第三个光照属性
texture2d0 第⼀个纹理属性
texture2d1 第⼆个纹理属性
textureOrder 纹理应⽤于渲染图元的顺序
- prepareToDraw 准备渲染效果
网友评论