我想绘制一个场景到默认帧缓冲区,同时也绘制一些与我绘制的模型相关的辅助数据到与默认帧缓冲区具有相同图像尺寸的离屏缓冲区。在OpenGL中,一个绘制调用中的一个着色器程序是否可以呈现给FBO和默认帧缓冲区?
我明白我可以分别做这两件事情,在两个glDraw *调用(一个渲染到一个FBO,一个没有),将使用两个适当的着色器程序。
我认为(仍然在学习这个)我可以通过将两个渲染缓冲区/纹理附加到一个FBO,同时使用一个着色器程序执行一次glDraw *调用,其中的片段着色器将适当的值写入多个输出对应于多个FBO附件,并最终将FBO中的两个图像中的一个复制到默认帧缓冲区,通过使用它来纹理场景填充四边形或调用glBlitFramebuffer。
但是,我可以让一个glDraw *调用一个着色器程序,并让我的片段着色器写入可见帧缓冲区和一些离屏FBO?根据我所看到的相关文件,我不怀疑,但我不确定。