GLKit常用API解析

GLKTextureInfo 創(chuàng)建OpenGL紋理信息

  • name: OpenGL上下文中紋理名稱
  • target: 紋理綁定的目標(biāo)
  • height: 加載的紋理高度
  • width: 加載紋理的寬度
  • textureOrigin: 加載紋理中的原點(diǎn)位置
  • alphaState: 加載紋理中alpha分量狀態(tài)
  • containsMipmaps: 加載的紋理是否包含mip貼圖

GLKTextureLoader 簡(jiǎn)化從各種資源文件中加載紋理

  • 初始化

    - (instancetype)initWithSharegroup:(EAGLSharegroup *)sharegroup;
    
  • 從文件中加載紋理

    + (GLKTextureInfo *)textureWithContentsOfFile:options:error:
    - (void)textureWithContentsOfFile:options:queue:completionHandler:
    

    options:

    • GLKTextureLoaderApplyPremultiplication 是否非alpha通道乘以相對(duì)應(yīng)的alpha值(alpha * rgb)
    • GLKTextureLoaderGenerateMipmaps 是否生成Mip貼圖
    • GLKTextureLoaderOriginBottomLeft 是否左下角為原點(diǎn)
    • GLKTextureLoaderGrayscaleAsAlpha 是否加載灰度圖片
  • 從URL加載紋理

    + (GLKTextureInfo *)textureWithContentsOfURL:options:error: 
    - textureWithContentsOfURL:options:queue:completionHandler: 
    
  • 從內(nèi)存中加載紋理

    + (GLKTextureInfo *)textureWithContentsOfData:options:errer: 
    - textureWithContentsOfData:options:queue:completionHandler:
    
  • 從CGImages加載紋理

    + (GLKTextureInfo *)textureWithCGImage:options:error: 
    - textureWithCGImage:options:queue:completionHandler: 
    
  • 從URL或文件加載多維紋理(加載一張height = 6 * width 或者 width = 6 * height的圖片, 將這張圖片分成6部分后折成立方體貼圖)

    + (GLKTextureInfo *)cubeMapWithContentsOfURL:options:errer: 
    - cubeMapWithContentsOfURL:options:queue:completionHandler:
    
    + (GLKTextureInfo *)cubeMapWithContentsOfFile:options:errer: 
    - cubeMapWithContentsOfFile:options:queue:completionHandler:
    
    
  • 從多張文件中加載多維紋理

    + (GLKTextureInfo *)cubeMapWithContentsOfFiles:options:errer: 
    - cubeMapWithContentsOfFiles:options:options:queue:completionHandler
    

GLKView 使用OpenGL ES 繪制內(nèi)容的視圖默認(rèn)實(shí)現(xiàn)

  • 初始化視圖

    - initWithFrame:context:
    
  • 代理 delegate

  • 配置幀緩存區(qū)對(duì)象

    • drawableColorFormat 顏色緩存區(qū)格式
    • drawableDepthFormat 深度緩存區(qū)格式
    • drawableStencilFormat 模板緩存區(qū)格式
    • drawableMultisample 多重采樣格式
  • 幀緩存區(qū)屬性

    • drawableHeight(readonly) 底層緩存區(qū)對(duì)象的高度(以像素為單位)
    • drawableWidth(readonly) 底層緩存區(qū)對(duì)象的寬度(以像素為單位)
  • 繪制視圖的內(nèi)容

    • context 繪制視圖內(nèi)容時(shí)使用的OpenGL ES上下文
    • - bindDrawable 將底層FrameBuffer對(duì)象綁定到OpenGL ES
    • enableSetNeedsDisplay 指定視圖是否響應(yīng)使得視圖內(nèi)容無(wú)效的消息
    • display 立即重繪視圖內(nèi)容
    • snapshot 繪制視圖內(nèi)容并將其作為新圖像對(duì)象返回
    • - deleteDrawable 刪除與視圖關(guān)聯(lián)的可繪制對(duì)象

GLKViewDelegate 用于GLKView對(duì)象回調(diào)方法

  • - glkView:drawInRect: 繪制視圖內(nèi)容(必須實(shí)現(xiàn)的代理)

GLKViewController 管理OpenGL ES渲染循環(huán)的視圖控制器

  • 更新

    • - (void)update 更新視圖內(nèi)容
    • - (void)glkViewControllerUpdate: 更新視圖內(nèi)容
  • 配置幀速率

    • preferredFramesPerSecond 視圖控制器調(diào)用視圖以及更新視圖內(nèi)容的速率
    • framesPerSecond
  • 代理 delegate

  • 控制幀更新

    • paused 渲染循環(huán)是否已暫停
    • pausedOnWillResignActive 當(dāng)前程序重新激活動(dòng)狀態(tài)時(shí)視圖控制器是否?動(dòng)暫停渲染循環(huán)
    • resumeOnDidBecomeActive 當(dāng)前程序變?yōu)榛顒?dòng)狀態(tài)時(shí)視圖控制是否自動(dòng)恢復(fù)呈現(xiàn)循環(huán)
  • 獲取有關(guān)View更新信息

    • frameDisplayed 視圖控制器自創(chuàng)建以來(lái)發(fā)送的幀更新數(shù)
    • timeSinceFirstResume ?視圖控制器第一次恢復(fù)發(fā)送更新事件以來(lái)經(jīng)過(guò)的時(shí)間量
    • timeSinceLastResume 自上次視圖控制器恢復(fù)發(fā)送更新事件以來(lái)更更新的時(shí)間量
    • timeSinceLastUpdate ?上次視圖控制器調(diào)用委托方法glkViewControllerUpdate:以及經(jīng)過(guò)的時(shí)間量
    • timeSinceLastDraw ?上次視圖控制器調(diào)用視圖display方法以來(lái)經(jīng)過(guò)的時(shí)間量

GLKViewControllerDelegate 渲染循環(huán)回調(diào)方法

  • - glkViewControllerUpdate: 在顯示每個(gè)幀之前調(diào)?
  • - glkViewController:willPause: 在渲染循環(huán)暫停或恢復(fù)之前調(diào)?

GLKBaseEffect 一種簡(jiǎn)單光照/著色系統(tǒng)

  • label 給Effect命名

  • transform 應(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 場(chǎng)景中第?個(gè)光照屬性

  • light1 場(chǎng)景中第二個(gè)光照屬性

  • light2 場(chǎng)景中第三個(gè)光照屬性

  • texture2d0 第一個(gè)紋理屬性

  • texture2d1 第?個(gè)紋理屬性

  • textureOrder 紋理應(yīng)用于渲染圖元的順序

  • fog 應(yīng)?于場(chǎng)景的霧屬性

  • colorMaterialEnable 布爾值,表示計(jì)算光照與材質(zhì)交互時(shí)是否使用顏?頂點(diǎn)屬性

  • useConstantColor 布爾值,指示是否使?用常量顏色

  • constantColor 不提供每個(gè)頂點(diǎn)顏?數(shù)據(jù)時(shí)使?常量顏?

  • - prepareToDraw 準(zhǔn)備渲染效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容