Android OpenGL ES 从入门到精通系统性学习教程

12,922 阅读4分钟

为什么要写这个教程

目前这个 OpenGL ES 极简教程的更新暂时告一段落,说是教程,其实自知有种吹嘘的味道,很荣幸获得了阮一峰老师的推荐。

因为在工作中频繁使用 OpenGL ES 做一些特效、滤镜之类的效果,加上平时学到的的知识点也比较细碎,就想着去系统地学习下 OpenGL ES 相关开发知识,并将学习过程记录下来。

另外,这个 Android OpenGL ES 极简教程主要是为音视频开发做准备的。

准备知识

一些同学反映,学习这个教程感觉有点门槛。其实,就是需要懂一些 Android 开发和 C/C++ 开发知识。

在本公众号:字节流动,后台回复 1024 即可获取相关的视频教程,里面有 2 个章节是关于 C/C++ 基础和 NDK 开发知识的讲解。

基础篇和应用篇

该教程分为基础篇和应用篇,基础篇主要是讲解 GLES 3.0 的主要核心知识点,而应用篇主要是利用基础篇的知识实现一些常见的特效和功能。

基础篇

OpenGL ES 3.0 开发(01):绘制一个三角形

OpenGL ES 3.0 开发(02):纹理映射

OpenGL ES 3.0 开发(03):YUV 渲染

OpenGL ES 3.0 开发(04):VBO、EBO 和 VAO

OpenGL ES 3.0 开发(05):FBO 离屏渲染

OpenGL ES 3.0 开发(06):EGL

OpenGL ES 3.0 开发(07):Transform Feedback

OpenGL ES 3.0 开发(08):坐标系统

OpenGL ES 3.0 开发(09):光照基础

OpenGL ES 3.0 开发(10):深度测试

OpenGL ES 3.0 开发(11):模板测试

OpenGL ES 3.0 开发(12):混合

OpenGL ES 3.0 开发(13):实例化(Instancing)

OpenGL ES 3.0 开发(14):粒子(Particles)

OpenGL ES 3.0 开发(15):立方体贴图(天空盒)

OpenGL ES 3.0 开发(16):相机预览

OpenGL ES 3.0 开发(17):相机基础滤镜

OpenGL ES 3.0 开发(18):相机 LUT 滤镜

OpenGL ES 3.0 开发(19):相机抖音滤镜

OpenGL ES 3.0 开发(20):3D 模型

OpenGL ES 3.0 开发(21):3D 模型加载和渲染

OpenGL ES 3.0 开发(22):PBO

OpenGL ES 3.0 开发(23):多重渲染目标(MRT)

OpenGL ES 3.0 开发(24):帧缓冲区位块传送(Blit)

应用篇

OpenGL ES 实现动态(水波纹)涟漪效果

OpenGL ES 实现 3D 阿凡达效果

OpenGL ES 实现刮刮卡和手写板功能

OpenGL ES 实现实时音频的可视化

OpenGL ES 实现大小头和头部晃动效果

OpenGL ES 实现瘦脸大眼效果

OpenGL ES 绘制贝塞尔曲线

OpenGL ES 实现瘦身大长腿效果

OpenGL ES 实现心动特效

OpenGL ES 调试工具

下一阶段更新预告

有些刚进来的同学说,“我是来学习音视频开发的,你老是更新 OpenGL 是什么鬼?”

所以,基于以上需求该教程的更新暂时告一段落,不过后面还会有一些重要知识点会更新上去,如 HardwareBuffer 等。

学习音视频开发,FFmpeg 是一个必须要掌握的开源工具,熟悉和掌握它,对学习整个音视频开发知识的脉络非常有帮助。

基于上述我们掌握的 OpenGL 开发知识,再利用 FFmpeg 开源库强大的音视频处理功能,我们可以轻易实现视频播放和录制,接下来我们将以 FFmpeg 开发为基础逐步去熟悉音视频开发的知识脉络。

下一阶段【字节流动】公众号的更新内容大致如下:

联系与交流

联系我