nee*_*vek 1 opengl fbo textures
我创建了一个FBO,并将纹理绑定为其颜色附件,我有多个着色器程序对纹理进行一些后期处理,一切都很好,但对我来说没有意义,纹理可以用作输入(sampler2D)以及着色器的输出的同时.
以下是我采取的步骤:
fboA.textureA,并将其绑定为颜色附件fboA.glBindFrameBuffer绑定fboA到framebuffer目标.glUseProgram使用着色器程序shaderA.glDrawArrays绘制的东西(最终绘制textureA因为fboA当前是绑定的).glUseProgram以使用在片段着色器中shaderB具有sampler2D统一的着色器程序.textureA为sampler2D着色器程序的统一shaderB.textureA用于设置fragColor.我最困惑的是最后两个步骤,其中textureA用作片段着色器的输入,仍然绑定到当前帧缓冲区.在我看来,片段着色器正在读取和写入同一块内存,这不是某种未定义的行为,为什么它仍能正常工作?