版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.10.05 |
前言
GLKit
框架的設計目標是為了簡化基于OpenGL或者OpenGL ES的應用開發。 接下來幾篇我們就解析一下這個框架。
框架概覽
GLKit
框架的設計目標是為了簡化基于OpenGL或者OpenGL ES的應用開發。它的出現加快OpenGL ES或OpenGL應用程序開發。 使用數學庫,背景紋理加載,預先創建的著色器效果,以及標準視圖和視圖控制器來實現渲染循環。
GLKit框架提供了功能和類,可以減少創建新的基于著色器的應用程序所需的工作量,或者支持依賴早期版本的OpenGL ES或OpenGL提供的固定函數頂點或片段處理的現有應用程序。
下面看一下該框架的詳細情況。
1. GLKit 主要的功能
GLKit 主要的功能如下:
- 紋理加載
(Texture loading)
:GLKTextuerLoader Class
。- 紋理加載允許您的應用程序輕松地從各種來源加載紋理。 甚至可以在背景中使用幾行代碼來異步加載紋理。 有關更多信息,請參閱 GLKTextureLoader。
- 性能卓越的科學運算庫, 支持矢量, 四元數,矩陣運算等。
- 數學庫提供常用的矢量,四元數和矩陣運算。 這些實現被優化以提供出色的性能。
- 實現常見的標準
Shader
特效。GLKit
允許你配置你所需要的特效,它會自動創建和加載對應的Shader。
GLKBaseEffect, GLKReflectionMapEffect, GLKSkyboxEffect Class
。- 效果提供了普通著色效果的標準實現。 您配置效果和相關的頂點數據,該效果創建并加載適當的著色器。 GLKit包含三個效果:GLKBaseEffect類實現OpenGL ES 1.1著色和照明模型的關鍵子集,GLKReflectionMapEffect類將基本效果擴展為包含反射映射支持,GLKSkyboxEffect類提供了一個實現
skybox
效果。
- 效果提供了普通著色效果的標準實現。 您配置效果和相關的頂點數據,該效果創建并加載適當的著色器。 GLKit包含三個效果:GLKBaseEffect類實現OpenGL ES 1.1著色和照明模型的關鍵子集,GLKReflectionMapEffect類將基本效果擴展為包含反射映射支持,GLKSkyboxEffect類提供了一個實現
- 對應于GLKit的View和ViewController。
GLKView Class
和GLKViewController Class
。- 視圖和視圖控制器提供OpenGL ES視圖和相應的視圖控制器的標準實現。 這減少了創建使用OpenGL ES的iOS應用程序所需的代碼量。 有關更多信息,請參閱GLKView
和 GLKViewController。
- 視圖和視圖控制器提供OpenGL ES視圖和相應的視圖控制器的標準實現。 這減少了創建使用OpenGL ES的iOS應用程序所需的代碼量。 有關更多信息,請參閱GLKView
在iOS上,GLKit需要OpenGL ES 2.0上下文。 在MacOS中,GLKit需要支持OpenGL 3.2 Core Profile
的OpenGL上下文。
2. 框架基本結構
下面我們就看一下框架的基本結構。
框架詳述結構
下面我們就看一下框架的詳細結構。
1. Texture Loading
-
- 通過類GLKTextureLoader創建的OpenGL ES的紋理信息。
-
- 一個實用工具類,可簡化從各種圖像文件格式加載OpenGL或OpenGL ES紋理數據。
2. OpenGL ES View Rendering
-
- 使用OpenGL ES繪制內容的視圖的默認實現。
-
- 使用GLKView對象的繪制回調方法。
-
- 管理OpenGL ES渲染循環的視圖控制器。
-
- 使用
GLKViewController
對象的渲染循環回調方法用于。
- 使用
3. Mesh Data Management
4. Shader-Based Rendering Effects
-
- 提供基于著色器的OpenGL渲染效果的對象的標準界面。
-
- 用于基于著色器的OpenGL渲染中的一個簡單的照明和著色系統。
-
- 用于基于著色器的OpenGL渲染的支持反射映射的照明和著色系統。
-
- 用于基于著色器的OpenGL渲染的一個簡單的天空盒視覺效果。
5. Rendering Effect Parameters
-
- 用于GLKit渲染效果中使用的配置信息的抽象超類。
-
- GLKit渲染效果中使用的Fog繪制信息。
-
- GLKit渲染效果中使用的照明信息。
-
- GLKit渲染效果中使用的紋理繪制參數。
-
- GLKit渲染效果中使用的表面顯示特性。
-
- GLKit渲染效果中使用的坐標轉換信息。
6. Math Utilties
-
- 一種不透明的類型,表示4×4矩陣的堆棧,為分級變換建模和類似任務提供支持。
-
- GLKMatrix3類型定義了
3x3
浮點矩陣以及常用于操縱矩陣的許多數學運算。 圖形編程中通常使用3x3矩陣來表示從一個坐標系轉換為另一個坐標系的縮放或旋轉變換。操作GLKMatrix3
結構的函數將輸入視為不可變的,而是返回一個表示操作結果的新矩陣。
- GLKMatrix3類型定義了
-
-
GLKVector4
類型定義了一個4分量的浮點向量以及通常用于操縱向量的許多數學運算。 圖形編程廣泛使用向量來表示位置,法線,顏色和其他數據結構。操作GLKVector4結構的函數將輸入視為不可變的,而是返回一個代表操作結果的新向量。
-
-
- GLKQuaternion類型定義了一個表示四元數的結構。 四元數由標量分量s和XYZ向量v定義。在圖形編程中經常使用四元數字作為三維對象旋轉的緊湊表示。操作GLKQuaternion結構的函數將輸入視為不可變的,而是返回代表操作結果的新的四元數。
-
- 該引用包括沒有與它們相關聯的特定類型的數學例程。
7. Reference
8. Related Documentation
后記
未完,待續~~~