OpenGL ES 是由 khronos 所維護、定義的免授權費、跨平台的 3D Graphics API,與 OpenGL 不同的是,OpenGL ES 主要是針對嵌入式系統(embedded system)的環境,例如手機、PDA等裝置;而近年來網頁上的多媒體技術越來越複雜、多樣化,也漸漸地需要用到 3D Graphics 的硬體加速,所以也出現了基於 OpenGL ES 2.0 而發展、直接在網頁上做 3D 顯示的 WebGL。
目前,貼圖壓縮於手持裝置上的應用受限於:
- Texture寬高是否為二的次方
Texture支援NPOT有助於美術設計產出Resource與轉換成貼圖壓縮。 - 貼圖壓縮格式Alpha支援與否
Alpha支援為必需,UI設計上大多會使用有Alpha的Texture。 - 失真嚴不嚴重
在漸層的表現上失真不能太明顯。 - 貼圖壓縮格式是標準還是extension
以Device相容性兒言,ETC1/ETC2比較會被採用。
考量以上四點,只有Opengl ES 3.0的標準ETC2較不受限,現今主流Device都是Opengl ES 2.0,無法全面的使用貼圖壓縮,目前只能針對特定平台特定Device去做貼圖壓縮優化。
Opengl ES 2.0的標準ETC1相較於各家的extension在Alpha Channel支援上顯得薄弱,如要支援Alpha須變相使用2張Texture。
特定平台或Device:
IOS使用貼圖壓縮extension PVRTC,Android支援Opengl ES 2.0的Device使用ETC1。
多平台Device:
Resource處理流程或處理工具來產生各平台最適合的貼圖壓縮格式。
[文章撰寫:Shawn]
0 意見:
張貼留言