龙少:
最近在写什么bug呢?
捷特:会用OpenGL播放视频以后,感受个不少知识都串到一块儿了。不少shader都是OpenGLES2.0,我顺便用3.0的规范重塑了一下。
龙少:真是闲着没事,播个视频还要OpenGL, 哥VideoView一把梭你信不信?
捷特:少年,你对于力量一无所知,难到你觉得视频播放都是这样的?
编程
龙少:
否则呢?还能这么播?
捷特:缩放了解一下。
龙少:对View的变换也行啊,so easy
bash
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_simple.fsh
复制代码
捷特:
透视呢?
龙少:对View的变换...,应该也能够...
框架
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_simple.fsh
复制代码
捷特:
旋转呢?
龙少:对View的变换......不知道行不行...
ide
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_simple.fsh
复制代码
捷特:
黑白呢?
龙少:控制View显示时的RGB的值....
post
捷特:
色效呢?
龙少:我......
spa
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_gray.fsh
复制代码
捷特:
负片呢?
龙少:我......
3d
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_fupian.fsh
复制代码
捷特:
六边形马赛克呢?
龙少:我......
code
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_mask.fsh
复制代码
捷特:
分屏呢?
龙少:我......
cdn
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_split.fsh
复制代码
捷特:
色动呢?
龙少:我......
视频
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer2
shader: 顶点: video.vsh 片断:video_offset.fsh
复制代码
捷特:
缩放颤动呢?
龙少:我......
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer2
shader: 顶点: video_scale.vsh 片断:video_scale.fsh
复制代码
捷特:
灵魂出窍呢?
龙少:我......
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer2
shader: 顶点: video.vsh 片断:video_gost.fsh
复制代码
捷特:
毛刺呢?
龙少:我......
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer2
shader: 顶点: video.vsh 片断:video_ci.fsh
复制代码
捷特:
涡旋呢?
龙少:我......
源码:com.toly1994.tolygl.gl.shape.player.VideoDrawer
shader: 顶点: video.vsh 片断:video_rotate.fsh
复制代码
不知从何提及,知识点挺多的。OpenGL是块难啃的骨头,可是一旦啃碎了,就会以为真香。这把石中剑你拔不拔得起不是问题,关键在于你肯不愿拔。
OpenGLES2.0已成为历史,之前写了6篇ES2.0入门文章,虽然有略微的变化,可是核心思想仍是不变的。不会玩矩阵,不了解三维相机,不明白颜色构造,懒得计算,只想CV,学啥都是白搭。
吾想要写几篇OpenGLES3.0的文章,直接开撕视频,总感受云里雾里的。先写些基础的知识铺垫一下,做为OpenGLES3.0最佳实践。再结合视屏的播放特效来讲说实际使用。可能的话后面会接入FFmpeg,让编解码大佬和渲染大佬并肩做战。下面是一些入门OpenGLES的过程:
至关于用颜色来讲:"Hello World"
无中生有,万物起源。在此将介绍着色器的使用,与图形渲染流程。
虽然你是三维物体,但你的眼睛只能看到二维面,只是经过变更参考位置来感觉三维物体。人们的平常生活,仅须要二维就足够了。OpenGL为你打开了一扇通往三维的大门它只是二维面上的模拟三维。
地心说,日心说?在个人世界(0,0,0)就是中心。红色x轴向,蓝色z轴向,绿色y轴向。了解世界坐标是创造世界的第一步:
如何经过循环来收录坐标,是件挺重要的事。
手势操做:
旋转展现:
到这来就能够接入视频了,视频也就是一个贴图而已,你彻底能够将视频贴在空间的任何位置。此后花分两朵,各表一枝:
其一是视频/相机的接入和特效、FFmpeg的接入,专一多媒体;
其二是复杂的空间立体图形的绘制及环境渲染,专一图形学。
复制代码
更多的细节也会慢慢说吧,毕竟不是一两句就能说清的。不过之后没那么多空闲,可能更新的就比较慢了。日更变月更吧,有生之年系列,随着更新会补连接,介意收藏此文。也会在长满草的公众号
编程之王
上收录,欢迎除草。 若有兴趣,能够先看先了解一些基础知识,也就是万变不离的宗。之前的2.0系列:
Android多媒体之GL-ES2战记第一集--勇者集结
Android多媒体之GL-ES2战记第二集--谜团立方
Android多媒体之GL-ES2战记第三集--圣火之光
Android多媒体之GL-ES2战记第四集--移形换影
Android多媒体之GL-ES2战记第五集--宇宙之光
Android多媒体之GL-ES2战记第六集--九层之台
立刻到2019年的最后一个月了,缅怀一下吧。今年的成长也不少,最起码把Flutter的框架撕的差很少了,音视频的知识也逐渐联系起来。拓扑、离散数学和量子力学做为茶余饭后的科普知识基本了解一些;微积分忘得差很少了,有必要还得捡起来。总的看来,并无完成预期的目标。毕竟上半年算是废了...... 不过也算对得起今年的标签。
将来嘛,很远,远到我看不见。只是耳边回响那灵魂三问:我是谁,我来自何方,我终归何处......
2017年标签:"海的彼岸,有我不曾见证的风采"
2018年标签:"海的彼岸,吾在征途"
2019年标签:"向那些曾经没法跨越的鸿沟敬上——君临"
2020年标签:"封神之路,漫漫修远"
复制代码
@张风捷特烈 2019.11.30 未允禁转
个人公众号:编程之王
~ END ~