相机预览使用帧缓存对象(FBO)

在原先的相机应用中对相机预览处理是通过 OPENGL 直接读取 OES Texture 数据进行滤镜和显示,这样做的缺点是效率低, 由于 OES Texture 是外部纹理,直接读取的话会增加了GPU取数据的时间,若进行一些运算密集的算法例如高斯滤波,每次都会到外部纹理取数据,这样则会造成明显的卡顿;
解决办法是利用帧缓存把外部纹理渲染到关联的二维纹理,再对二维纹理进行处理,这样显示的效率才会高;
两种方法得对比:
这里写图片描述

下面来看下第二种方案的步骤:

// 创建外部纹理对象
mCameraTextureId = GlUtil.createTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
// 创建 SurfaceTexture
mCameraSufaceTexture = new SurfaceTexture(mCameraTextureId);
// 把 SurfaceTexture 传给相机
mCamera
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值