我使用OpenGL ES 2.0和GLSL绘制对象。 然后,我想从任何我的片段着色器在屏幕上绘制的像素中读取像素。 我掺混两种灰度纹理和我的片段着色器的最后,我有:GLSL和glReadPixelels
gl_FragColor = vec4(something...blending textures);
我知道gl_FragColor意味着最终的颜色将在帧缓冲区中写入。 (据http://nehe.gamedev.net/article/glsl_an_introduction/25007/) 鉴于这种情况,我不喜欢的东西
GLubyte *pixels = new GLubyte[320*240];
glReadPixels(0, 0, 320,240, GL_LUMINANCE, GL_UNSIGNED_BYTE, pixels);
使用,在第一次,我得到原来一样texture1然后拿到黑空彩色图像绘制后。有人可以帮我解决什么问题吗?我需要和FBO做些什么吗?我是一个有点失去了... :(
我想glReadPixels后,你更新你的纹理输入到下一帧的着色器之一?发布一些更多的代码来更新纹理,也许错误在那里。 –
请向我们展示您的程序中的代码,这些代码正在发布。 – datenwolf