美文网首页
Android OpenGL ES 一.简介(转载补充)

Android OpenGL ES 一.简介(转载补充)

作者: 有心人2021 | 来源:发表于2021-09-11 16:20 被阅读0次

    OpenGL是什么

    OpenGL是一个跨平台的软件接口语言,用于调用硬件的2D、3D图形处理器。

    由于是只软件接口,所以具体底层实现依赖硬件设备制造商,比方手机显卡驱动的升级更新。

    Android includes support for high performance 2D and 3D graphics with the Open Graphics Library (OpenGL®), specifically, the OpenGL ES API. OpenGL is a cross-platform graphics API that specifies a standard software interface for 3D graphics processing hardware. OpenGL ES is a flavor of the OpenGL specification intended for embedded devices.

    OpenGL ES是什么

    OpenGL ES是OpenGL的分支,考虑到终端性能,针对嵌入式设备设计,裁剪了OpenGL部分不必要的功能。本系列博客之后若没特定说明时,则OpenGL代指OpenGL ES。

    应用场景

    • 游戏
    • 视频播放器、编辑应用
    • 相机、图片处理应用
    • 对图像处理及时性要求比较高的应用

    Android对OpenGL的支持

    OpenGL ES版本 基于的OpenGL版本 Android上引入的版本 兼容性 功能、特色
    1.0 & 1.1 1.3 & 1.5 Android 1.0 固定的图像管道,开发难度相比2.0低
    2.0 2.0 Android 2.2 (API level 8) 不兼容1.x 可编程的渲染管道,性能效率更高,开发难度更高
    3.0 3.x Android 4.3 (API level 18) 兼容2.0 性能更高,支持ETC2格式的透明纹理压缩
    3.1 4.x Android 5.0 (API level 21) 兼容2.0/3.0 新增计算着色器、单独的着色器对象等新特性,更多查看Android5.0特性

    学习的版本

    选2.0的版本,因为即使用户的手机是Android 4.3以上的版本,设备制造商也不一定实现了3.0API的接口。下图是官方统计的OpenGL版本支持情况。

    image

    详情见最新版本数据

    版本支持声明

    在AndroidManifest.xml中加入下面这行使用特性的声明后,Google Play将会过滤掉不支持OpenGL ES 2.0版本的用户,拒绝他们安装。

    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    
    

    不同版本对应的值

    版本 glEsVersion值
    2.0 0x00020000
    3.0 0x00030000
    3.1 0x00030001

    开发方式

    • 通过Android实现的Java接口调用OpenGL
    • C语言编写OpenGL代码,再通过JNI调用(跨平台开发时可以考虑)

    参考

    Android OpenGL ES学习资料所列举的博客、资料。

    GitHub代码工程

    本系列课程所有相关代码请参考我的GitHub项目GLStudio

    课程目录

    本系列课程目录详见 简书 - Android OpenGL ES教程规划

    转自作者:Benhero
    链接:https://www.jianshu.com/p/8dd045253ef7
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:Android OpenGL ES 一.简介(转载补充)

          本文链接:https://www.haomeiwen.com/subject/cskawltx.html