我有一个framebuffer对象,我在其中使用N个纹理上的多目标渲染.在某个时候,我想清除其中一些纹理的内容,但不是全部.如果我打电话
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)
绑定到FBO的每个纹理都将被清除(我是对的吗?).有没有办法在特定的绘制缓冲区/纹理上执行此操作?
Nic*_*las 19
将GL_COLOR_BUFFER_BIT在该glClear通话将清除所有的活动的绘制颜色缓冲区,如通过指定的glDrawBuffers.因此,您可以在执行清除之前更改绘制缓冲区.
但这是不必要的状态变化.你可以简单地调用glClearBuffer,这将清除特定的缓冲区.