需要使用OpenGL着色器一次处理2个相机帧

时间:2012-05-08 16:54:45

标签: iphone ios opengl-es-2.0 textures video-processing

我无法将两个连续的相机帧同时传递到我的着色器。

我正在使用CVOpenGLESTextureCacheCreateTextureFromImage生成纹理,并且一直遵循与GLCameraRipple示例应用程序相同的过程,该应用程序同时向着色器发送两个纹理。然而,我的工作不起作用 - 无论我发送什么顺序,我一次只能获得一个。

事实上,当我从着色器中调用texture2D时,我给它的纹理参考无关紧要 - 它总是对相同的纹理进行采样。

我一直在疯狂。尝试:

1)为每个纹理使用不同的纹理缓存

2)glActiveTexture(GL_TEXTURE0)& glActiveTexture(GL_TEXTURE1)分别在创建每个纹理之前

3)glUniform1i(TEXTURE_PREV,0); &安培; glUniform1i(TEXTURE_NEXT,1);

4)glUniform1i(TEXTURE_PREV,CVOpenGLESTextureGetName(prevTextureRef)); &安培; glUniform1i(TEXTURE_NEXT,CVOpenGLESTextureGetName(nextTextureRef));

5)(在着色器中)在uniform sampler2D framePrev之前添加布局(binding = 0);

我对OpenGLES2很陌生,我不知道这个调用是做什么的,但没有它没有任何作用: glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, CVOpenGLESTextureGetName(nextTextureRef), 0);

有什么想法吗?

0 个答案:

没有答案