前言
视频数据光解码出来,那也只不过是一堆冰冷的二进制数据罢了,只有将数据渲染到屏幕上,才能真正让人感受诗与远方,体验看片的快乐~
Android平台最常用的渲染工具就是大名鼎鼎的OpenGL,行内人士基本多少有听闻过它的大名,众多有名的游戏引擎就是由OpenGL编写的。
学习目标
学习目标就是掌握OpenGL的工作机制,可以通过OpenGL绘制基本图形以及渲染图片,最终能够做出像我的项目UnitedPlayer一样的视频动态滤镜效果:
反色:
![](https://img-blog.csdnimg.cn/img_convert/38b0c831908b7a5b936a3f02447fa5ce.webp?x-oss-process=image/format,png)
灰度图:
![](https://img-blog.csdnimg.cn/img_convert/897d815230934b8f12c52f6e808bd815.webp?x-oss-process=image/format,png)
闪白:
![](https://img-blog.csdnimg.cn/img_convert/28856feebc8a21f4f1d1d410e3c69e7b.webp?x-oss-process=image/format,png)
缩放:
![](https://img-blog.csdnimg.cn/img_convert/3930d6e2d254ebce72aff5da49b7ea82.webp?x-oss-process=image/format,png)
灵魂出窍:
![](https://img-blog.csdnimg.cn/img_convert/d29bb6826ab55ef7ce974d581c477488.webp?x-oss-process=image/format,png)
颜色偏移抖动:
![](https://img-blog.csdnimg.cn/img_convert/879cc02ba06c56cbdbd74ea4a33fbecc.webp?x-oss-process=image/format,png)
看起来还有点炫把哈哈,其实只要掌握了OpenGL基础,就会发现也不是难事~
![](https://img-blog.csdnimg.cn/img_convert/a177c2666886b9a5cb5237e60647e03c.webp?x-oss-process=image/format,png)
当然OpenGL也不是学习的终极目标,毕竟它只是一个工具,以后还是会被其他更优秀的工具取代,我们需要学习的是图形学知识,这才是OpenGL的内核,才是真正贯穿整个图形开发始终的秘密武器,所以在本系列中,也会插入一些图形学基础知识在其中。
OpenGL
OpenGL是什么
上面说了那么多,那么OpenGL到底是什么呢? 很多人误以为OpenGL是一个图形渲染库,然而,OpenGL本身并不是一个API库,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。
以下为著名OpenGL学习网站learnopengl 对OpenGL的介绍:
OpenGL规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现(Implement)的,将由OpenGL库的开发者自行决定(译注:这里开发者是指编写OpenGL库的人)。因为OpenGL规