绘制到纹理后的Opengl ES 2.0 glDeleteFramebuffers
Posted
技术标签:
【中文标题】绘制到纹理后的Opengl ES 2.0 glDeleteFramebuffers【英文标题】:Opengl ES 2.0 glDeleteFramebuffers after drawing to texture 【发布时间】:2019-05-22 10:31:01 【问题描述】:我使用帧缓冲区渲染到纹理。但我不确定什么时候应该正确使用glDeleteFramebuffers
。纹理存在时是否应该存在 fbo,或者我可以在最后一次绘制纹理后安全地调用 glDeleteFramebuffers
。
【问题讨论】:
【参考方案1】:您可以在最后一次绘制到纹理后安全地调用 glDeleteFramebuffers。但是,我会假设创建和销毁帧缓冲区的成本很高,所以我只会在确定我不会再渲染到该纹理时才会这样做。
我遇到了一些 android GLES 驱动程序的错误,我必须在删除帧缓冲区之前从帧缓冲区中分离纹理,因此我建议您这样做以防万一:
glBindFramebuffer(GL_FRAMEBUFFER, frameBuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 0, 0);
【讨论】:
非常感谢您的帮助和推荐,非常感谢。以上是关于绘制到纹理后的Opengl ES 2.0 glDeleteFramebuffers的主要内容,如果未能解决你的问题,请参考以下文章
OPENGL ES 2.0 知识串讲 ——OPENGL ES 详解III(纹理)
OpenGL ES 2.0 Framebuffer 渲染到纹理 iOS:没有显示