Android:使用OpenGL 1.1中的混合创建模糊纹理

时间:2012-01-31 22:14:32

标签: android opengl-es android-ndk blur opengl-es-1.1

有没有人在Android上取得很大成功,使用混合来模糊纹理来创建模糊纹理?

我正在考虑所描述的技术here,但关键是要采用加载的纹理,然后对其应用模糊,以便绑定的纹理本身模糊。

1 个答案:

答案 0 :(得分:2)

“Inplace blurring”是CPU可以做的事情,但是使用通常并行处理的GPU,你必须有另一个图像缓冲区作为渲染目标。

即使使用新的着色器,来自/到同一缓冲区的读取和写入也可能导致损坏,因为它们可以重新排序。一个类似的问题是,高斯模糊内核可以在一次通过中处理模糊,它依赖于邻居片段,这些片段本可以通过在其片段坐标处应用的内核进行修改。

如果你没有'framebuffer_object'扩展可用于渲染渲染缓冲区甚至纹理(另外需要'render_texture'扩展名), 您必须像示例中一样渲染到后台缓冲区中,然后执行glReadPixels()以获取图像以将其上传到源纹理,或者执行快速直接的glCopyTexImage2D()(OpenGL * 1.1具有此功能) )。

如果渲染目标太小,您可以渲染多个图块。