系列推薦文章:
OpenGL/OpenGL ES入門:圖形API以及專業名詞解析
OpenGL/OpenGL ES入門:渲染流程以及固定存儲着色器
OpenGL/OpenGL ES入門:圖像渲染實現以及渲染問題
OpenGL/OpenGL ES入門:基礎變換 - 初識向量/矩陣
OpenGL/OpenGL ES入門:紋理初探 - 經常使用API解析
OpenGL/OpenGL ES入門: 紋理應用 - 紋理座標及案例解析(金字塔)
OpenGL/OpenGL ES入門: 頂點着色器與片元着色器(OpenGL過渡OpenGL ES)
OpenGL/OpenGL ES入門: GLKit以及API簡介
OpenGL/OpenGL ES入門: GLKit使用以及案例設計模式
GLKit
框架的設計目標是爲了簡化基於OpenGL/OpenGL ES
的應用開發。它的出現加快OpenGL
或OpenGL ES
應用程序開發。 使用數學庫,背景紋理加載,預先建立的着色器效果,以及標準視圖和視圖控制器來實現渲染循環。緩存
GLKit
框架提供了功能和類,能夠減小建立新的基於着色器的應用程序所需的工做量,或支持依賴早期版本的OpenGL
或OpenGL ES
提供的固定函數頂點或片斷處理的現有應用程序。bash
GLKView
提供繪製場所(view
)
GLKViewController
擴展於標準的UIKit
設計模式,用於繪製視圖內容的管理與呈現
蘋果棄用OpenGL ES
,但iOS開發者能夠繼續使用。框架
具體使用請看下一章內容OpenGL/OpenGL ES入門: GLKit使用以及案例異步
name : `OpenGL` 上下⽂文中紋理理名稱
target : 紋理理綁定的⽬目標
height : 加載的紋理理⾼高度
width : 加載紋理理的寬度
textureOrigin : 加載紋理理中的原點位置
alphaState: 加載紋理理中alpha份量量狀態
containsMipmaps: 布爾值,加載的紋理理是否包含mip貼圖
複製代碼
- initWithSharegroup: 初始化⼀個新的紋理加載到對象中
- initWithShareContext: 初始化⼀個新的紋理加載對象
複製代碼
+ textureWithContentsOfFile:options:errer: 從⽂件加載2D紋理圖像並從數據中
建立新的紋理
- textureWithContentsOfFile:options:queue:completionHandler: 從文件中異步
加載2D紋理圖像,並根據數據建立新紋理
複製代碼
URL
加載紋理- textureWithContentsOfURL:options:error: 從URL加載2D紋理圖像並從數據建立新紋理
- textureWithContentsOfURL:options:queue:completionHandler: 從URL異步加載2D紋理圖像,並根據數據建立新紋理
複製代碼
+ textureWithContentsOfData:options:errer: 從內存空間加載2D紋理圖像,並根據數據建立新紋理
- textureWithContentsOfData:options:queue:completionHandler:從內存空間異步加載2D紋理圖像,並從數據中建立新紋理
複製代碼
CGImages
建立紋理- textureWithCGImage:options:error: 從Quartz圖像 加載2D紋理圖像並從數據建立新紋理
- textureWithCGImage:options:queue:completionHandler: 從Quartz圖像異步加載2D紋理圖像,並根據數據建立新紋理
複製代碼
URL
加載多維建立紋理+ cabeMapWithContentsOfURL:options:errer: 從單個URL加載⽴方體貼圖紋理圖像,並根據數據建立新紋理
- cabeMapWithContentsOfURL:options:queue:completionHandler:從單個URL異步加載⽴方體貼圖紋理圖像,並根據數據建立新紋理
複製代碼
+ cubeMapWithContentsOfFile:options:errer: 從單個文件加載⽴方體貼圖紋理對象,並從數據中建立新紋理
- cubeMapWithContentsOfFile:options:queue:completionHandler:從單個文件異步加載⽴方體貼圖紋理對象,並從數據中建立新紋理
+ cubeMapWithContentsOfFiles:options:errer: 從⼀系列文件中加載⽴方體貼圖紋理圖像,並從數據總建立新紋理
- cubeMapWithContentsOfFiles:options:options:queue:completionHandler:從⼀系列⽂件異步加載⽴方體貼圖紋理圖像,並從數據中建立新紋理
複製代碼
- initWithFrame:context: 初始化新視圖
複製代碼
delegate 視圖的代理
複製代碼
drawableColorFormat 顏⾊色渲染緩存區格式
drawableDepthFormat 深度渲染緩存區格式
drawableStencilFormat 模板渲染緩存區的格式
drawableMultisample 多重採樣緩存區的格式
複製代碼
drawableHeight 底層緩存區對象的高度(以像素爲單位)
drawableWidth 底層緩存區對象的寬度(以像素爲單位)
複製代碼
context 繪製視圖內容時使用的OpenGL ES 上下⽂
- bindDrawable 將底層FrameBuffer 對象綁定到OpenGL ES
enableSetNeedsDisplay 布爾值,指定視圖是否響應使得視圖內容無效的消息
- display ⽴即重繪視圖內容
snapshot 繪製視圖內容並將其做爲新圖像對象返回
複製代碼
- deleteDrawable 刪除與視圖關聯的可繪製對象
複製代碼
- glkView:drawInRect: 繪製視圖內容 (必須實現代理)
複製代碼
- (void) update 更新視圖內容
- (void) glkViewControllerUpdate:
複製代碼
preferredFramesPerSecond 視圖控制器調用視圖以及更新視圖內容的速率
framesPerSencond 視圖控制器調⽤視圖以及更新其內容的實際速率
複製代碼
GLKViewController
代理delegate 視圖控制器的代理
複製代碼
paused 布爾值,渲染循環是否已暫停
pausedOnWillResignActive 布爾值,當前程序從新激活動狀態時視圖控制器是否⾃動暫停渲染循環
resumeOnDidBecomeActive 布爾值,當前程序變爲活動狀態時視圖控制是否自動恢復呈現循環
複製代碼
View
更新信息frameDisplayed 視圖控制器自建立以來發送的幀更新數
timeSinceFirstResume ⾃視圖控制器第一次恢復發送更新事件以來通過的時間量
timeSinceLastResume 自上次視圖控制器恢復發送更新事件以來更更新的時間量
timeSinceLastUpdate ⾃上次視圖控制器調用委託方法以及通過的時間量
glkViewControllerUpdate:
timeSinceLastDraw ⾃上次視圖控制器調用視圖display方法以來通過的時間量
複製代碼
- glkViewControllerUpdate: 在顯示每一個幀以前調⽤
複製代碼
- glkViewController:willPause: 在渲染循環暫停或恢復以前調⽤
複製代碼
Effect
label 給Effect(效果)命名
複製代碼
transform 綁定效果時應⽤於頂點數據的模型視圖,投影和紋理變換
複製代碼
lightingType ⽤於計算每一個片斷的光照策略,GLKLightingType
GLKLightingType
GLKLightingTypePerVertex 表示在三角形中每一個頂點執行光照計算,而後在三角形進⾏插值
GLKLightingTypePerPixel 表示光照計算的輸入在三角形內插入,而且在每一個片斷執⾏光照計算
複製代碼
lightModelTwoSided 布爾值,表示爲基元的兩側計算光照
material 計算渲染圖元光照使用的材質屬性
lightModelAmbientColor 環境顏色,應⽤效果渲染的全部圖元.
light0 場景中第⼀個光照屬性
light1 場景中第二個光照屬性
light2 場景中第三個光照屬性
複製代碼
texture2d0 第一個紋理屬性
texture2d1 第⼆個紋理屬性
textureOrder 紋理應用於渲染圖元的順序
複製代碼
fog 應⽤於場景的霧屬性
複製代碼
colorMaterialEnable 布爾值,表示計算光照與材質交互時是否使用顏⾊頂點屬性
useConstantColor 布爾值,指示是否使⽤用常量顏色
constantColor 不提供每一個頂點顏⾊數據時使⽤常量顏⾊
複製代碼
- prepareToDraw 準備渲染效果
複製代碼