带有单个FBO的iPhone后处理,带有OpenGL ES 2.0?
-
11-10-2019 - |
题
我正在尝试使用OpenGL ES 2.0在iPhone上实现后处理(Blur,Bloom等)。我遇到了一些问题。在我的第二个渲染步骤中渲染时,我最终在屏幕上绘制了一个完全黑色的四边形,而不是场景(看来缺少纹理数据),所以我想知道原因是否正在使用单个FBO。使用以下方式使用单个FBO是否不正确?
对于第一个通行证(常规场景渲染),
- 我将纹理附加为color_attachment_0,并将其渲染到纹理上。glframebuffertexture2d(gl_framebuffer,gl_color_attachment0,gl_texture_2d,textureBuffer,0)
对于第二次通过(后处理),
- 我将颜色renderbuffer附加到color_attachment_0 glframebufferrenderbuffer(gl_framebuffer,gl_color_attachment0,gl_renderbuffer,colorrenderbuffer)
- 然后,将第一张通过中的纹理渲染为屏幕上的四边形。
解决方案
不,FBO使用情况很好。原因很可能是您没有将纹理的最小/磁过滤器(TextureBuffer)设置为绑定后,将GL_MIN_FILTER和GL_MAG_FILTER设置为GL_NEAREST或GL_LINEAR,或使用GlTexParameter使用GL_LINEAR,并且您的纹理应起作用。
不隶属于 StackOverflow