![](https://img-blog.csdnimg.cn/20200706103905601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android OpenGL ES 应用开发
Android OpenGL ES 应用开发,专注于图片、相机、视频处理、简易游戏框架
mBenHero
Android Developer
展开
-
音视频处理学习资料
雷霄骅qqchenjian318知心猛男基础知识音视频基础概念H264视频编码介绍技术方案微信 Android 视频编码爬过的那些坑ImageReader - OpenGL最高效的像素拷贝方式...原创 2018-01-26 15:21:48 · 124 阅读 · 0 评论 -
音视频开发基础知识
音视频入门前,需要了解下一些基础概念,不必死记硬背,可之后再补再翻阅。一. 颜色模式RGBRGB颜色模型的主要目的是在电子系统中检测,表示和显示图像,比如电视和计算机,但是在传统摄影中也有应用。基础的部分不过多描述,更多内容点击标题见维基百科。YUVY'UV的发明是由于彩色电视与黑白电视的过渡时期。黑白视频只有Y(Luma,Luminance)视频,也就是灰阶值。到了彩色电视规格的...原创 2019-03-05 17:15:58 · 213 阅读 · 0 评论 -
Android OpenGL ES 3.基础图形、多边形的绘制
基础图形绘制之前讲解过,OpenGL ES中,只提供了3种基本图形:点、线、三角形。而其他我们熟知的图形,都是基于这3种基本图形处理拼接合成的。那么本章节我们先从OpenGL中给我们提供的3种基础图形讲起,再介绍下其他图形的绘制。基础图形绘制API/** * 使用顶点数据绘制图形 */ GLES20.glDrawArrays(int mode, int first, int count...原创 2018-09-14 16:12:37 · 261 阅读 · 0 评论 -
Android OpenGL ES 10.1 视频播放器
课程介绍在学习了前面章节OpenGL基础知识后,读者应该具备了复杂界面特效、图片高效处理的开发能力。接下来的章节主要转向Android视频应用开发中的OpenGL ES部分。一. 视频播放器搭建1. 视图容器界面视图容器依旧使用GLSurfaceView,绘制方式是RENDERMODE_CONTINUOUSLY持续绘制的模式(课程演示,减少框架部分,相应的有不必要的性能损耗)。2. 必要...原创 2019-03-11 18:28:24 · 314 阅读 · 0 评论 -
Android OpenGL ES 9.1 基础颜色滤镜
课程介绍本节介绍滤镜基础框架+基础颜色滤镜。课程效果.gif基础框架这节课我们开始讲滤镜的开发,为了便于展示各种滤镜的效果,设计了一套简易的框架,分两部分。1. 滤镜的基类主要的生命周期方法如下:onCreated:创建的时候onSizeChanged:滤镜尺寸改变onDraw:绘制每一帧onDestroy:销毁,用于回收无用资源而实现基础滤镜的时候,只需要复写...原创 2019-01-15 16:01:50 · 404 阅读 · 0 评论 -
Android OpenGL ES 1.基础概念
基本图形从上面的渲染流程我们可以知道,GL中是先绘制好图形的轮廓,再将颜色、图案绘制到这个轮廓上的,所以,能画什么样的图形至关重要。OpenGL ES中,只提供了3种基本图形:点、线、三角形。而其他我们熟知的图形,都是基于这3种基本图形处理拼接合成的。2.0版本渲染流程OpenGL展示到屏幕上的流程整体上,我将7个流程步骤拆解成了3大部分:确定顶点的位置,通过这些顶点绘制出指定的图形...原创 2018-08-31 17:13:19 · 108 阅读 · 0 评论 -
Android OpenGL ES 2.基本框架-Hello World
一.视图组件 GLSurfaceViewAndroid上用于显示OpenGL视图,一般是使用GLSurfaceView,一个继承自SurfaceView的组件。它的渲染绘制在一个单独的线程中,而非主线程。GLSurfaceView一般是结合一个GLSurfaceView的内部接口类Renderer来使用。Renderer类负责渲染图形图像,而GLSurfaceView负责触摸事件等逻辑的处理...原创 2018-08-31 17:22:37 · 142 阅读 · 0 评论 -
Android OpenGL ES 7.2多纹理绘制
基本原理1. 多次绘制,单纹理单元之前我们在第三节基础图形绘制的时候有推导出一个结论:上面的示例图中,在onDrawFrame里,同时绘制了点、线、三角形,也就是多次调用glDrawArrays,并且绘制出来了。 我们暂时定义glDrawArrays是进行一次图元组装,也就是绘制一个图层,那么一次onDrawFrame只绘制一帧,而这一帧可以绘制多种图元,多个图层。 也就是:一次只绘制一帧...原创 2018-11-09 14:25:23 · 273 阅读 · 0 评论 -
Android OpenGL ES 6.索引法绘制
前言之前我们绘制的都是一些简单的基础图形,本章节我们绘制一个复杂些的形状,如下。索引绘制图中的数字是后期标注,并非GL绘制。根据之前学的知识,我们知道,这个图形可以分解为4个三角形,用数字代表顶点序号,分别是0, 1, 20, 2, 30, 4, 13, 2, 5在程序中,每个顶点对应x、y坐标,那么我们的顶点数组数据就需要如下声明:private stat...原创 2018-11-06 15:57:25 · 147 阅读 · 0 评论 -
Android OpenGL ES 9.2 位置滤镜
课程介绍本节介绍如何改变改变片元着色器内的坐标位置参数,从而让渲染的内容动起来或者达到一些特殊的效果。位置滤镜效果实现讲解本节课的核心原理是修改采样的纹理坐标。这是之前课程中的纹理坐标图,纹理默认传入的读取范围是(0,0)到(1,1)的范围内读取颜色值。ST纹理坐标如果对读取的位置进行调整修改,那么就可以做出各种各样的效果。比如缩放动画,让读取的范围改成(-1...原创 2019-01-21 16:04:59 · 143 阅读 · 0 评论 -
Android OpenGL ES 0.简介
OpenGL是什么OpenGL是一个跨平台的软件接口语言,用于调用硬件的2D、3D图形处理器。由于是只软件接口,所以具体底层实现依赖硬件设备制造商。Android includes support for high performance 2D and 3D graphics with the Open Graphics Library (OpenGL®), specifically,...原创 2018-08-31 16:59:32 · 129 阅读 · 0 评论 -
Android OpenGL ES 5.渐变色
前言之前我们绘制的图形都是只有一个颜色,而本章节我们绘制一个正方形,并且给图形上渐变色,让简单的图形变得绚丽些。原理在基础概念的课程中,我们讲解了渲染管道的流程,现在我们再回顾一下。OpenGL ES开发重点之前的章节我们都了解使用过了uniform、attribute这两个限定符,现在我们再了解下varying这个限定符。attritude:一般用于各个顶点各不相同的量...原创 2018-11-06 15:51:14 · 203 阅读 · 1 评论 -
Android OpenGL ES 4.正交投影
前言之前我们的所有图形效果,都是变形的,比如我们原本绘制的是长宽比是1:1的,结果在手机屏幕上的效果展示却是长方形。那么,本节课我们通过正交投影来解决这个问题。本节课主要讲解如何去编写相关代码来解决问题,而具体的原理、概念、GL坐标体系变换等暂不做深入说明,会在之后的课程在讲解。归一化设备坐标在OpenGL中,我们要渲染的所有物体都要映射到x轴、y轴、z轴上的[-1, 1]范围内,这个范围...原创 2018-09-14 16:18:40 · 108 阅读 · 0 评论 -
Android OpenGL ES学习资料
Android OpenGL ES 视频应用开发教程目录官网资料khronos2.0版快速参考卡片2.0版API参考文档书籍推荐《OpenGL ES 2 for Android: A Quick-Start Guide》(英文原版电子书)《OpenGL ES应用开发实践指南 Android卷》(中文版):已绝版,请淘宝系统教程Android官方指导Android ...原创 2017-11-09 18:03:57 · 105 阅读 · 0 评论 -
Android OpenGL ES 8.FrameBuffer离屏渲染
作用FrameBuffer Object,也称FBO,离屏渲染,可以摆脱屏幕的束缚,在后台做图像处理。理解FrameBuffer和Texture绑定,FrameBuffer犹如画板,而Texture犹如画纸,我们在上面画东西,画完后,我们可以拿Texture去绘制到其他地方上面。(本文重点:这个是我个人对FBO的理解,也是帮助我去使用它的方式。如果有更好的理解方式,可以留言沟通。)代码...原创 2019-08-05 16:18:12 · 283 阅读 · 0 评论 -
Android OpenGL ES 7.1纹理绘制
基本原理与渐变色接近,但有些区别:渐变色:光栅化过程中,计算出颜色值,然后在片段着色器的时候可以直接赋值纹理:光栅化过程中,计算出当前片段在纹理上的坐标位置,然后在片段着色器的中,根据这个纹理上的坐标,去纹理中取出相应的颜色值。纹理坐标OpenGL中,2D纹理也有自己的坐标体系,取值范围在(0,0)到(1,1)内,两个维度分别是S、T,所以一般称为ST纹理坐标。而有些时候也叫UV坐标。...原创 2018-11-09 14:21:27 · 137 阅读 · 0 评论 -
Android OpenGL ES 11.1 相机
课程介绍本节课主要讲解如何通过OpenGL将相机获取到的内容渲染到画面上,而拍摄、录像、相机API则不是本节课的重点。相机画面的渲染和视频的渲染都比较接近,OpenGL部分基本一致,主要是流程上需要对应处理下,所以,直接看本章节的朋友,可以先看下上一章Android OpenGL ES 10.1 视频播放器。一. 视频播放器搭建1. 视图容器界面视图容器依旧使用GLSurfaceView...原创 2019-04-23 11:37:17 · 123 阅读 · 0 评论 -
Android OpenGL ES 视频应用开发教程目录
基础知识章节完成情况0. 技术背景√1. 基础概念√2. 架构体系√3. 几何图形绘制√4. 正交投影√5. 渐变色√6. 顶点索引方式√7.1 纹理绘制√7.2 多纹理绘制√8. FBO离屏渲染√9.1 基础颜色滤镜√9.2 位置滤镜√EGL○坐标系统&图形变换○...原创 2018-08-31 16:55:30 · 162 阅读 · 0 评论