背景:
Android原生相机应用程序使用OpenGL_1.0上下文来显示相机预览和图库图片.现在我想在原生相机预览上添加一个实时滤镜.
要在我自己的相机应用预览中添加实时滤镜很简单 - 只需使用OpenGL_2.0进行图像处理和显示.由于OpenGL_1.0不支持图像处理,并且它以某种方式用于在Android原生相机应用程序中显示.*我现在想要创建一个基于OpenGL_2.0的新GL上下文进行图像处理,并将处理后的图像传递给基于OpenGL_1.0的其他GL上下文进行显示.*
问题:
问题是如何将处理后的图像从GL上下文过程(基于OpenGL_2.0)传输到GL上下文显示(基于OpenGL_1.0).我试图使用FBO:首先在GL上下文处理中从纹理复制图像像素,然后在GL上下文显示中将它们设置回另一个纹理.但是从纹理复制像素非常慢,通常需要几百毫秒.这对于相机预览来说太慢了.
*有没有更好的方法将纹理从一个GL上下文转移到另一个?特别是,当一个GL上下文基于OpenGL_2.0而另一个基于OpenGL_1.0时.*
Problem Description:
I write a simple demo using RenderScrip for image process. In my demo, when I use a one-kernal renderscript, it works fine. Yet when I use a script group to connect two rs-kernals for execution, I found the output bitmap with horizontal stripes. Especially when you chose a bitmap with small size.
The output bitmap when I use a one-kernal renderscript:

The output bitmap when I use a script group to connect two rs-kernals. Note these two rs-kernals …