我正在实施渲染到纹理的概念,并对FBO的范围有疑问。在完成了对默认FBO的glDrawArrays调用和渲染到纹理之后,我将删除纹理和非默认的FBO。然后,我调用glReadPixels读取默认FBO上的内容。所以,我的问题是,我做得对吗--我的意思是,在删除FBO和纹理之前,我应该调用read像素吗?
我所假设的是,在默认的FBO上绘制它之后,我们不需要非默认的FBO和纹理,但是后来一些OpenGL的开发人员告诉我,我在我的应用程序中做了一些奇怪的事情。请帮助我理解这一点。
以下是我要采取的步骤:
现在,正如我在系统FBO和它上所呈现的那样。为什么我们仍然需要这种纹理和其他用作纹理的FBO?
注意:我使用术语系统FBO来区分两个FBO,这是我的术语。
发布于 2013-02-15 06:52:14
我建议阅读这个:fbo.html
但是总的来说,这里是一些伪代码,用于在OpenGL中呈现纹理。
init() {
// setup FBO, attachments, etc...
}
render() {
glBindFramebuffer(your_fbo);
glClearBuffer(...);
renderScene();
glBindFramebuffer(0); // setup default, system FBO
glBindTexture(texture_id_that_was_attached_to_FBO);
renderSecondScene();
}没有必要删除纹理或fbo后,你渲染你的场景,删除他们在应用程序的末尾,在一些清理过程。
https://stackoverflow.com/questions/14889434
复制相似问题