Android openGL ES纹理渲染接口详解

前两篇描述了渲染方面的内容,昨天有写了点3D模型贴图以及全景影像效果的代码。感觉有必要把接口记录下,不然只是单纯的熟练使用,对其背后原理理解还不够深刻。

首先明确要完成的任务:通过OpenGL机制渲染视频。至于视频是本地、网络或者摄像头采集到的视频不关心。呈现方面是通过OpenGL机制,通过native层代码或者Android SDK里的控件都可以。

之前的实现是纯java即Android SDK里的GLSurfaceView控件,本地视频播放通过MediaPlayer方式播放。因此以下总结基于GLSurfaceView记录,总体可以分为GLSurfaceView模块以及OpenGl模块。

GLSurfaceView

继承自SurfaceView,使用SurfaceView中的surface来呈现OpenGL显示的内容。区别于SurfaceView,主要有以下增强:

1. 管理surface这块特殊的内存,这块内存可以合入Android的显示系统。

2. 管理EGL 的显示, 方便OpenGL渲染内容至前面提高的surface内存中。

3. 可以提供用户自定义Renderer渲染对象来执行真正的渲染实现。(这块没试过~~)

4. 在GLSurfaceView内置的子线程中渲染,不影响UI线程。

5. 提供不同的渲染模式,可以是按需刷新渲染或者不间断持续渲染。

不同于Android其他的View通过继承方式重写绘制接口,GLSurfaceView通过setRenderer接口将

渲染相关的接口代理给接口实现类去重写。而且,GLSurfaceView的使用非常简单,调用setRenderer以后就完成了所有的初始化以及启动子线程的操作。

特殊处理:

设置背景Translucent透明。因为GLS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值