关于渲染到纹理
我正在实现渲染纹理概念,并对FBO的范围有所怀疑。 在我完成glDrawArrays调用后,渲染到纹理的默认FBO,我删除纹理和非默认的FBO。 然后我打电话给glReadPixels读取默认FBO上的内容。 所以,我的问题是我做对了我的意思是我应该在调用readpixel之前删除FBO和纹理?
我假设在默认的FBO上绘制它后,我们不需要非默认的FBO和纹理,但后来OpenGL的一些开发人员告诉我,我在我的应用程序中提到上面的一些奇怪的事情。 请帮我理解这一点。
以下是我所遵循的步骤:
现在,正如我已经在系统FBO上呈现的那样。 为什么我们仍然需要纹理和其他用作纹理的FBO?
注意:我使用术语系统FBO来区分两个FBO是我的术语。
我建议阅读:http://www.songho.ca/opengl/gl_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,在某些清理过程中在应用程序结束时删除它们。
链接地址: http://www.djcxy.com/p/33923.html