Android OpenGL ES 学习(一) -- 基本概念

这篇具有很好参考价值的文章主要介绍了Android OpenGL ES 学习(一) -- 基本概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenGL 学习教程
Android OpenGL ES 学习(一) – 基本概念
Android OpenGL ES 学习(二) – 图形渲染管线和GLSL
Android OpenGL ES 学习(三) – 绘制平面图形
Android OpenGL ES 学习(四) – 正交投屏
Android OpenGL ES 学习(五) – 渐变色
Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序
Android OpenGL ES 学习(七) – 纹理
代码工程地址: https://github.com/LillteZheng/OpenGLDemo.git

OpenGL 是自己一直比较感兴趣的,刚好最近工作也有 OpenGL 的需求,所以,这里也记录一下学习过程。

一. OpenGL ES 是什么?

OpenGL (open graphics library)是一个跨平台的图像程序接口,用于调用硬件的2D ,3D 图形处理器,是一种图形处理硬件的标准软件接口。
而 OpenGL ES 是 OpenGL 的分支,针对手机和嵌入式设备,裁减了 OpenGL 部分不必要的功能。

二. 应用场景

  • 游戏
  • 视频播放器
  • 图片,视频剪辑,特效

三. Android 对 OpenGL ES 的支持

Android 支持多版 OpenGL ES API (参考https://www.jianshu.com/p/48c52f862f42):

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

四. 学习选择

首选 GL3.0 版本,现在2022年了,厂商基本支持 3.0 版本,而且3.0 也兼容2.0 ,所以直接上手3.0 即可。两者的改动,可自行搜索。

如果你的应用使用的 OpenGL 功能不一定在所有设备上可用,则你必须在 AndroidManifest.xml 文件中包含这些要求。以下是最常见的 OpenGL 清单声明:

    <!-- Tell the system this app requires OpenGL ES 2.0. -->
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    

各类版本如下:

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

五. OpenGL ES 在系统中的作用是什么?

通过下面这张图可以看到,它其实是 CPU 和 GPU 图形交互的一个桥梁,可以理解成一个库(图片来源https://www.jianshu.com/p/48c52f862f42)
android opengl es,Android 音视频,学习,android,OpenGL,音视频
因为 GPU 在处理逻辑运算方面,有天然的优势,因此,可以理解 OpenGL ES 就是一个能操作 GPU 的API。

六. 开发

  • 通过 Android 官方标准接口,调用 OpenGL,推荐这个,比较容易入手,本教程也是基于此方式。
  • C 语言编写 OpenGL 代码,再通过 Jni 调用 (跨平台可以考虑)

七. 推荐教程

  • 官网:https://learnopengl-cn.github.io/ 虽然是 C 写的,但是大同小异,里面一些专业解释还是非常靠谱的。
  • 比较好入门的教程:https://www.jianshu.com/p/d134a835ebec ,使用 Android 原生 OpenGL ES api 编写,不涉及C,对初学者特别友好,笔者也是根据该教程入门的。
  • 比较详细:https://juejin.cn/post/7121525553491869703 ,写的比较详细,通过场景,一步步理清编写步骤,就是字数偏多了些,容易走神。
  • 本教程:使用 Android 原生 OpenGL ES api 编写,不涉及C,也比较好入门,而且会根据官网资料去写教程,还是比较全面的。

参考:
https://learnopengl-cn.github.io/01%20Getting%20started/01%20OpenGL/
https://www.jianshu.com/p/8dd045253ef7
https://www.jianshu.com/p/48c52f862f42文章来源地址https://www.toymoban.com/news/detail-817630.html

到了这里,关于Android OpenGL ES 学习(一) -- 基本概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android OpenGL ES 学习(十) – GLSurfaceView 源码解析GL线程以及自定义 EGL

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投影 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序 Android OpenG

    2024年02月05日
    浏览(33)
  • 【Android OpenGL开发】OpenGL ES与EGL介绍

    OpenGL(Open Graphics Library)是一个跨编程语言、跨平台的编程图形程序接口,主要用于图像的渲染。 Android提供了简化版的OpenGL接口,即OpenGL ES。 早先定义 OpenGL ES 是 OpenGL 的嵌入式设备版本,用于移动端平台(Android、iOS),但由于嵌入式设备要求的是高性能,所以一些其它纯

    2024年02月04日
    浏览(77)
  • Android OpenGL ES 学习(十三) -离屏渲染FBO(截图)RBO, OES转 FBO

    Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投屏 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序 Android OpenGL ES 学习(七) –

    2024年02月12日
    浏览(26)
  • Android OpenGL ES实现简单绿幕抠图

    目录 正文 OES Filter BlendShader Filter 最后的效果 缺陷 实现绿幕抠图,其实想法很简单。 这里简单粗暴的使用着色器替换。 OES Filter 直接实现在相机预览上的Shader ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #extension GL_OES_EGL_image_external : require precision mediump float ;        

    2024年02月13日
    浏览(24)
  • LearnOpenGL - Android OpenGL ES 3.0 绘制三角形

    LearnOpenGL 笔记 - 入门 01 OpenGL LearnOpenGL 笔记 - 入门 02 创建窗口 LearnOpenGL 笔记 - 入门 03 你好,窗口 LearnOpenGL 笔记 - 入门 04 你好,三角形 OpenGL - 如何理解 VAO 与 VBO 之间的关系 经过一段时间 OpenGL 的学习,我们已经掌握了如何使用 glwf 在桌面端绘制简单图形。现在让我们把目光

    2024年02月12日
    浏览(32)
  • Android APP OpenGL ES应用(01)GLSurfaceView 2D/3D绘图基础

    OpenGL本身是开放图形库的一种标准,定义了一个跨语言、跨平台的编程规范,主要用于3D图形编程。OpenGLES是OpenGL的裁剪版本,主要是针对嵌入式设备/移动设备 (像手机、游戏机这种等等。。。) 进行裁剪后的库。对于Android设备来说主要是用OpenGL ES。从初学者角度来讲 Ope

    2023年04月20日
    浏览(32)
  • OpenGL ES 2.0 for Android教程(二):定义顶点和着色器

    文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(三) OpenGL ES 2.0 for Android教程(四) OpenGL ES 2.0 for Android教程(五) OpenGL ES 2.0 for Android教程(六) OpenGL ES 2.0 for Android教程(七) OpenGL ES 2.0 for Android教程(八) OpenGL ES 2.0 for Android教程(九) 本章介绍我们

    2023年04月14日
    浏览(28)
  • OpenGL ES 2.0 for Android教程(三):编译着色器并绘制到屏幕

    文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ES 2.0 for Android教程(四) OpenGL ES 2.0 for Android教程(五) OpenGL ES 2.0 for Android教程(六) OpenGL ES 2.0 for Android教程(七) OpenGL ES 2.0 for Android教程(八) OpenGL ES 2.0 for Android教程(九) 本章将继续我

    2023年04月26日
    浏览(46)
  • 【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)

    需要源码请点赞关注收藏后评论区留言私信~~~ 虽然OpenGL的三维制图功能非常强大,但是它主要为计算机设计的,对于嵌入式设备和移动端设备来说显得比较臃肿,所以业界又设计了专供嵌入式设备的OpenGL ES 它相当于OpenGL的精简版,因为嵌入式设备追求性价比,所以能不做的

    2024年02月04日
    浏览(35)
  • OpenGL-ES 学习(4)---- OpenGL-ES 坐标体系

    坐标体系 我们知道 OpenGL -ES 坐标系中每个顶点的 x,y,z 坐标都应该在 -1.0 到 1.0 之间,超出这个坐标范围的顶点都将不可见。 将一个物体(图像)渲染到屏幕上,通常经过将物体坐标转换为标准化设备坐标,然后再将标准化设备坐标转化为屏幕坐标的过程。 ( 将物体坐标转

    2024年02月19日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包