由于5G的发展,现在音视频越来越流行,我们的生活已经完全被抖音、视频号、B站等视频应用所包围。从这一点也能看到音视频的重要性。
而作为一名Android开发者,是时候来了解一下关于Android方面渲染方面的知识。音视频的应用都离不开OpenGL ES的处理。对于视频的高效渲染与融合操作是至关重要的。
上面的这种动画相信大家都很熟悉,类似的动画在各大直播间都会出现。那么这炫酷的原理实现内部都离不开OpenGL ES的高效渲染与更高级的融合处理。
多的就先不说了,现在我们就来认识一下OpenGL ES。
基本概念
Android可以通过OpenGL来支持高效的2D和3D图形,同时OpenGL是一种跨平台的图形API。其中OpenGL ES是OpenGL规范的一种形式,适用于嵌入式设备。
Android支持多种版本的OpenGL ES API:
- 1.0&1.1 Android1.0及以上
- 2.0 Android2.2及以上
- 3.0 Android4.3及以上
- 3.1 Android5.0及以上
我们的内容主要是基于OpenGL ES 2.0来进行,也就是进行二维的图形渲染。
坐标
在Android中通过Canvas进行绘制的坐标原点是在屏幕的左上角,同时它的坐标范围都是以屏幕的宽高来定义。
OpenGL ES则不同,它是以绘制区域的中心为原点,同时它的坐标范围是-1.0 ~ 1.0。也就是说它的坐标都是基于可绘制区域进行比例换算。并不是真正的值。
形状与方向
在OpenGL ES中,绘制的形状都是以三角形为基础,也就是说它必须由3个或者以上的点来进行绘制。所以它是由多个三角形进行组合成特定的形状,进过不同程度的交叉与重叠来达到不同的形状。
例如以二维空间来定义
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-myIuZqVE-1671109001126