前言
GLKit框架的設(shè)計(jì)目標(biāo)是為了簡化基于OpenGL/OpenGL ES的應(yīng)用開發(fā),它的出現(xiàn)加快了OpenGL ES或OpenGL應(yīng)用程序開發(fā)。 使用數(shù)學(xué)庫,背景紋理加載,預(yù)先創(chuàng)建的著色器效果,以及標(biāo)準(zhǔn)視圖和視圖控制器來實(shí)現(xiàn)渲染循環(huán)。
GLKit框架提供了一些功能和類,可以減少創(chuàng)建新的基于著色器的應(yīng)用程序所需的工作量,或者支持依賴早期版本的OpenGL ES或OpenGL提供的固定函數(shù)頂點(diǎn)或片段處理的現(xiàn)有應(yīng)?程序。GlKit官方文檔
常用API
GLKView:使用OpenGL ES 繪制內(nèi)容的視圖默認(rèn)實(shí)現(xiàn)
-
初始化視圖
-
-initWithFrame:context:
初始化新視圖
-
-
代理
-
delegate
視圖的代理
-
-
配置幀緩存區(qū)對象
-
drawableColorFormat
顏色渲染緩存區(qū)格式 -
drawableDepthFormat
深度渲染緩存區(qū)格式
*drawableStencilFormat
模板渲染緩存區(qū)的格式 -
drawableMultisample
多重采樣緩存區(qū)的格式
-
-
幀緩存區(qū)屬性
-
drawableHeight
底層緩存區(qū)對象的?度(以像素為單位) -
drawableWidth
底層緩存區(qū)對象的寬度(以像素為單位)
-
-
繪制視圖的內(nèi)容
-
context
繪制視圖內(nèi)容時(shí)使用的OpenGL ES 上下文 -
-bindDrawable
將底層FrameBuffer對象綁定到OpenGL ES -
enableSetNeedsDisplay
布爾值,指定視圖是否響應(yīng)使得視圖內(nèi)容?效的消息 -
-display
立即重繪視圖內(nèi)容 -
snapshot
繪制視圖內(nèi)容并將其作為新圖像對象返回
-
-
刪除視圖FrameBuffer對象
-
-deleteDrawable
刪除與視圖關(guān)聯(lián)的可繪制對象
-
GLKViewDelegate ?于GLKView對象回調(diào)方法
- 繪制視圖的內(nèi)容
-
-glkView:drawInRect:
繪制視圖內(nèi)容 (必須實(shí)現(xiàn)代理)
-
GLKViewController 管理OpenGL ES渲染循環(huán)的視圖控制器
-
更新
-
-(void)update
更新視圖內(nèi)容 -(void)glkViewControllerUpdate:
-
-
配置幀速率
-
preferredFramesPerSecond
視圖控制器調(diào)用視圖以及更新視圖內(nèi)容的速率 -
framesPerSencond
視圖控制器調(diào)用視圖以及更新其內(nèi)容的實(shí)際速率
-
-
配置GLKViewController代理
-
delegate
視圖控制器的代理
-
-
控制幀更新
-
paused
布爾值,渲染循環(huán)是否已暫停 -
pausedOnWillResignActive
布爾值,當(dāng)前程序重新激活動狀態(tài)時(shí)視圖控制器是否自動暫停渲染循環(huán) -
resumeOnDidBecomeActive
布爾值,當(dāng)前程序變?yōu)榛顒訝顟B(tài)時(shí)視圖控制是否?動恢復(fù)呈現(xiàn)循環(huán)
-
-
獲取有關(guān)View更新信息
-
frameDisplayed
視圖控制器自創(chuàng)建以來發(fā)送的幀更新數(shù) -
timeSinceFirstResume
?視圖控制器第一次恢復(fù)發(fā)送更新事件以來經(jīng)過的時(shí)間量 -
timeSinceLastResume
自上次視圖控制器恢復(fù)發(fā)送更新事件以來更新的時(shí)間量 -
timeSinceLastUpdate
自上次視圖控制器調(diào)用委托方法glkViewControllerUpdate
以來經(jīng)過的時(shí)間量 -
timeSinceLastDraw
?上次視圖控制器調(diào)用視圖display方法以來經(jīng)過的時(shí)間量
-
GLKViewControllerDelegate渲染循環(huán)回調(diào)?法
-
處理更新事件
-
-glkViewControllerUpdate:
在顯示每個(gè)幀之前調(diào)?
-
-
暫停/恢復(fù)通知
-
-glkViewController:willPause:
在渲染循環(huán)暫?;蚧謴?fù)之前調(diào)?.
-
GLKTextureInfo:紋理對象,紋理相關(guān)信息:
- name : OpenGL 上下?文中紋理理名稱
- target : 紋理理綁定的?目標(biāo)
- height : 加載的紋理理?高度
- width : 加載紋理理的寬度
- textureOrigin : 加載紋理理中的原點(diǎn)位置
- alphaState: 加載紋理理中alpha分量量狀態(tài)
- containsMipmaps: 布爾值,加載的紋理理是否包含mip貼圖
通過GLTextureLoader從各種資源文件中加載紋理:
-
初始化
-
-(instancetype)initWithSharegroup:(EAGLSharegroup *)sharegroup
初始化一個(gè)新的紋理加載對象 -
-(instancetype)initWithShareContext:(NSOpenGLContext *)context
初始化一個(gè)新的紋理加載對象
-
-
從文件中加載紋理
-
+textureWithContentsOfFile:options:errer:
從文件加載2D紋理圖像并根據(jù)數(shù)據(jù)創(chuàng)建新的紋理 -
-textureWithContentsOfFile:options:queue:completionHandler:
從文件中異步加載2D紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理
-
-
從URL加載紋理
-
-textureWithContentsOfURL:options:error:
從URL加載2D紋理圖像并創(chuàng)建新紋理 -
-textureWithContentsOfURL:options:queue:completionHandler:
從URL異步加載2D紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理
-
-
從內(nèi)存中創(chuàng)建紋理
-
+textureWithContentsOfData:options:errer:
從內(nèi)存空間加載2D紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理 -
-textureWithContentsOfData:options:queue:completionHandler:
從內(nèi)存空間異步加載2D紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理
-
-
從CGImages創(chuàng)建紋理
-
-textureWithCGImage:options:error:
從Quartz圖像加載2D紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理 -
-textureWithCGImage:options:queue:completionHandler:
從Quartz圖像異步加載2D紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理
-
-
從URL加載多維創(chuàng)建紋理理
-
+cabeMapWithContentsOfURL:options:errer:
從單個(gè)URL加載?方體貼圖紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理 -
-cabeMapWithContentsOfURL:options:queue:completionHandler:
從單個(gè)URL異步加載?方體貼圖紋理圖像,并根據(jù)數(shù)據(jù)創(chuàng)建新紋理
-
-
從?件加載多維數(shù)據(jù)創(chuàng)建紋理
-
+cubeMapWithContentsOfFile:options:errer:
從單個(gè)文件加載?方體貼圖紋理對象,并從數(shù)據(jù)中創(chuàng)建新紋理 -
-cubeMapWithContentsOfFile:options:queue:completionHandler:
從單個(gè)文件異步加載?方體貼圖紋理對象,并從數(shù)據(jù)中創(chuàng)建新紋理 -
+cubeMapWithContentsOfFiles:options:errer:
從?系列?件中加載?方體貼圖紋理圖像,并從數(shù)據(jù)總創(chuàng)建新紋理 -
-cubeMapWithContentsOfFiles:options:options:queue:completionHandler:
從一系列列文件異步加載?方體貼圖紋理圖像,并從數(shù)據(jù)中創(chuàng)建新紋理
-
GLKBaseEffect一種簡單光照/著色系統(tǒng),用于基于著色器器OpenGL渲染
-
命名Effect
-
label
給Effect(效果)命名
-
-
配置模型視圖轉(zhuǎn)換
-
transform
綁定效果時(shí)應(yīng)用于頂點(diǎn)數(shù)據(jù)的模型視圖,投影和紋理變換
-
-
配置光照效果
lightingType
?于計(jì)算每個(gè)片段的光照策略.
GLKLightingType
GLKLightingTypePerVertex
表示在三角形中每個(gè)頂點(diǎn)執(zhí)行光照計(jì)算,然后在三?形進(jìn)行插值
GLKLightingTypePerPixel
表示光照計(jì)算的輸?在三角形內(nèi)插入,并且在每個(gè)?段執(zhí)行光照計(jì)算配置光照
lightModelTwoSided 布爾值,表示為基元的兩側(cè)計(jì)算光照
material 計(jì)算渲染圖元光照使用的材質(zhì)屬性
lightModelAmbientColor 環(huán)境顏色,應(yīng)用效果渲染的所有圖元.
light0 場景中第一個(gè)光照屬性
light1 場景中第二個(gè)光照屬性
light2 場景中第三個(gè)光照屬性
-
配置紋理
- texture2d0 第?個(gè)紋理屬性
- texture2d1 第二個(gè)紋理屬性
- textureOrder 紋理應(yīng)用于渲染圖元的順序
-
配置霧化
- fog 應(yīng)?于場景的霧屬性
-
配置顏色信息
-
colorMaterialEnable
布爾值,表示計(jì)算光照與材質(zhì)交互時(shí)是否使用顏色頂點(diǎn)屬性 -
useConstantColor
布爾值,指示是否使用常量顏色 -
constantColor
不提供每個(gè)頂點(diǎn)顏色數(shù)據(jù)時(shí)使用常量顏?
-
-
準(zhǔn)備繪制效果
-
-prepareToDraw
準(zhǔn)備渲染效果
-