Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中的OpenGL ES簡介

Android中的OpenGL ES簡介

編輯:關於Android編程

OpenGL ES軟件層次棧,本章介紹了Android系統中OpenGL ES的調用層次棧,詳細分析了庫之間如何通過鉤子(hook)實現API調用關聯,讓我們明白各個庫之間的依賴關系。本節為Android中的OpenGL ES簡介。     Android中的OpenGL ES簡介   Android支持使用OpenGL(Open Graphics Library)API進行2D和3D圖形的繪制 ,尤其使用OpenGL ES(Embedded System) API。OpenGL是一個跨平台的圖形API規范,它為3D圖形處理硬件定義了一套標准的軟件接口。OpenGL ES是在OpenGL API的基礎上專為嵌入式設備選取的一套API規范。自早期的版本Android 1.0就開始支持OpenGL ES 1.0和1.1規范,自Android 2.2版本開始支持OpenGL ES 2.0規范。Android提供的OpenGL ES API類似於J2ME JSR239標准,但不同。   我們既可通過Android Framework中提供的API,也可以通過Native層(Native Development Kit ,NDK)的API去使用OpenGL。開發者可以使用Framework中兩個基本的類GLSurfaceView和GLSurfaceView。Renderer在Android應用程序中進行圖形繪制操作,也就是在Renderer中使用OpenGL API在GLSurfaceView上進行繪制,具體如何使用它們,詳見官方文檔 、 。   在使用GLSurfaceView和GLSurfaceView.Renderer進行繪制時,可以使用下面這些OpenGL ES API包。   (1)包javax.microedition.khronos.opengles提供OpenGL ES 1.0/1.1標准實現,可以使用的API類包括:GL10、 GL10Ext、 GL11、 GL11Ext和GL11ExtensionPack。   (2)包android.opengl,提供了一套靜態函數接口,包括OpenGL ES 1.0/1.1和2.0,其性能優於包javax.microedition.khronos.opengles。支持OpenGL ES 1.0/1.1的類包括:GLES10、 GLES10Ext、 GLES11和GLES10Ext;支持OpenGL ES 2.0的API類是:android.opengl.GLES20 (自Android 2.2開始)。   由於Android支持OpenGL ES 1.0/1.1、2.0,且由於二者有顯著差異。那麼該選擇哪個版本呢?在本節參考的Google文檔裡的"Choosing an OpenGL API Version"部分列出了四項因素,介紹如下。   (1)性能 :通常,OpenGL ES 2.0能比ES 1.0/1.1提供較快的性能。但是,這最終依賴於Android設備,不同的設備平台OpenGL的實現不同。   (2)設備兼容性:開發者開發的應用程序需要考慮Android設備類型,不同的Android版本對OpenGL版本支持不同,如OpenGL ES 2.0自Android 2.2才開始支持。   (3)編碼便利性:OpenGL ES 1.0/1.1 API編程較為方便,2.0版本相對復雜些。   (4)圖形控制:通過使用shaders,OpenGL ES 2.0對圖形繪制能提供較多的控制,可以創建更好的效果,在1.0/1.1版本上則很難達到。  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved