大家好,我是安卓直播端开源项目 yasea 作者,目前可以通过 OpenGL ES 2.0 将来自摄像头的图像进行滤镜渲染,基本功能已经实现: https://github.com/begeekmyfriend/yasea/tree/gpuimage
然而是对于磨皮,原来使用 glVertexAttribPointer 直接传递顶点数组的效率太差,导致输出帧率下降。幸好 GLES 2.0 支持 VBO ,我将代码改进如下,基本满足要求: https://github.com/begeekmyfriend/yasea/tree/gpuimage-vbo
问题是 VBO 替代后,渲染图像仅出现在屏幕右上第一象限中,大小为全屏四分之一。百思不得其解,我并没有改变顶点数组和纹理数组,也没有改变 glViewport 。请大家帮忙。
P.S.出于兼容性的原因,目前不考虑 GLES 3.0 ,而且 2.0 里的 VBO 基本满足性能问题。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.