Android平台最常用的渲染工具就是鼎鼎大名的OpenGL,程序员多多少少都有听过它,目前市面上众多3A游戏引擎很多就是由OpenGL编写的,而与此同时,对咱们Android开发来说,为什么要学习Opengl呢?其实就俩字:高薪! 今天就带大家来了解了解 OpenGL!
OpenGL是什么?
OpenGL到底是什么呢?很多人误以为OpenGL是一个图形渲染库,然而OpenGL本身并不是一个API库,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。
下面是著名的OpenGL学习网站learnopengl 给出的对OpenGL的介绍:
OpenGL规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现(Implement)的,将由OpenGL库的开发者自行决定(译注:这里开发者是指编写OpenGL库的人)。因为OpenGL规范并没有规定实现的细节,具体的OpenGL库允许使用不同的实现,只要其功能和结果与规范相匹配(亦即,作为用户不会感受到功能上的差异)。
这是官方规范文档对OpenGL的各种概念和整个工作机制的详细论述,也可以当做API文档使用。(要看官方文档的直接点击跳转即可)
官方文档过于官方,用比较通俗的话来说就是:OpenGL就是一个建立在图形硬件之上的软件编程接口,这些接口有一套官方制定的规范,具体实现由制造商去实现,而编程者通过这些软件编程接口,就可以在计算机中绘制出2D以及3D的图形。
常见的学习困难
说起学习OpenGL,可能是很多音视频初学者的梦魇,入门各种困难层出不穷,不过一但精通,那么50W+年薪完全不是问题! 这里我也将曾经学习碰到的坎梳理一下,相信很多人学习过程中也曾碰过这些坎:
OpenGL学习资料太少,网上的资料零碎不成系统,让人很难理解OpenGL的工作机制。OpenGL的api设计比较反人类,特别是对于像写惯了Java的开发者来说,OpenGL的api真的是太难用了,很啰嗦,各种绑定和解绑能把人搞晕。OpenGL的api经常不理解是什么意思,在网上也查不到api的解释。OpenGL的着色器怎么工作的不好理解,而且不能调试,光是解决编译问题就够呛。
在这我也努力为大家解决这些学习痛点,整理了一份音视频开发进阶文档,让初学者可以比较“柔顺丝滑”地入门,即使是老司机也能得到不少收获。
(此文档资料包括C/C++,Linux,FFmpeg webRTC opengl rtmp hls rtsp ffplay等等),留言或私信【音视频】即可领取。
以下是这份开发文档的部分章节:
音视频初级入门开发
- 音视频入门开发(一):三种方式绘制图片
- 音视频入门开发(二):AudioRecord 采集音频PCM并保存
- 音视频入门开发(三):AudioTrack 播放PCM音频
- 音视频入门开发(四):Camera API 采集视频数据
- 音视频入门开发(五):MediaExtractor 和 MediaMuxer API 解析与封装
- 音视频入门开发(六):MediaCodec API 详解
- 音视频入门开发(七):音视频录制流程总结
- ……
音视频中级进阶:OpenSL ES 学习
- OpenGL ES 中级开发(一): OpenGL ES 介绍
- OpenGL ES 中级开发(二): OpenGL ES 环境搭建
- OpenGL ES 中级开发(三): OpenGL ES 定义形状
- OpenGL ES 中级开发(四): OpenGL ES 绘制形状
- OpenGL ES 中级开发(五): OpenGL ES 使用投影和相机视图
- OpenGL ES 中级开发(六): OpenGL ES 添加运动效果
- OpenGL ES 中级开发(七): OpenGL ES 响应触摸事件
- OpenGL ES 中级开发(八): OpenGL ES 着色器语言GLSL
- ……
Android音视频开发高级探究篇
- 音视频编解码技术: 音频编码技术
- 流媒体协议
- 多媒体文件格式
- FFmpeg 学习
FFmpeg十分强大,本文的知识只是FFmpeg的一小部分,对于初识FFmpeg的同学用于常见的视频操作还是完全OK的,精通音视频还是有很长的路要走。
程序员行业越来越卷,对于Android开发来说往音视频流媒体领域走是一个非常好的涨薪点!
对于想要学习音视频的应届实习生、或者因本行业前景不佳想要转行、跳槽升薪的可以仔细看看这份《音视频开发进阶文档》,熟练掌握这些技术将大大提高你的音视频技术水平,帮助你拿下大厂高薪offer。
需要此份文档可以私信【音视频】即可领取。