ron*_*nag 9 c++ opengl framebuffer
我注意到现在有GL_DRAW/READ_FRAMEBUFFER扩展.目前我只是使用GL_FRAMEBUFFER和glTextureBarrierNV.但是,我没有发现很多关于READ/WRITE扩展的内容,因此有一些问题.
他们介绍了什么OpenGL版本?使用简单的GL_FRAMEBUFFER进行读写操作有什么好处?我在哪里可以找到更多关于此的信息?
Nic*_*las 13
迂腐:GL_DRAW/READ_FRAMEBUFFER未在延期中介绍; 它们是核心OpenGL 3.0功能.是的,从技术上讲,此功能也在ARB_framebuffer_objects中公开,但这是核心扩展,它仍然是核心GL 3.0.
无论如何,如果你想要DRAW/READ区分的词源,你需要看看EXT_framebuffer_blit.这就是那些普查员的起源,这就是存在这些普查员的原因.他们为帧缓冲区创建了两个上下文绑定点,而不是仅指定两个FBO来自/来自blit.该glBlitFramebuffer命令从当前绑定READ_FRAMEBUFFER到当前绑定的blit DRAW_FRAMEBUFFER.
如果你不使用位图传送,那么你并不真正需要的DRAW/READ区别.但这并不意味着你不应该使用它.glReadPixels读取READ_FRAMEBUFFER.绑定GL_FRAMEBUFFER绑定到两个点,因此您的代码仍然可以工作.但有时候有一个可以读取的FBO绑定不会影响绘图操作.