opengl - 是否可以通过多目标渲染仅清除帧缓冲区中的某些纹理?

标签 opengl fbo

我有一个帧缓冲区对象,在其中我对绑定(bind)到它的 N 个纹理使用多目标渲染。在某个时间,我想清除其中一些纹理的内容,但不是全部。
如果我打电话

glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

每个绑定(bind)到 FBO 的纹理都将被清除(对吗?)。
有没有办法在特定的绘制缓冲区/纹理上做到这一点?

最佳答案

GL_COLOR_BUFFER_BITthe glClear call将清除所有 active draw color buffers ,通过 glDrawBuffers 指定.因此,您可以在执行清除之前更改绘制缓冲区。

但这是不必要的状态变化。您可以simply call glClearBuffer , 这将 clear a particular buffer .

关于opengl - 是否可以通过多目标渲染仅清除帧缓冲区中的某些纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18029258/

相关文章:

opengl - 如何使用 OpenGL 渲染到帧缓冲区而不在屏幕上显示?

c++ - OpenGL:一次只能有一个 FBO 工作

c++ - OpenGL ES 2.0 2D 投影矩阵,将 GLfloat (*)[4] 转换为 GLfloat 时出错

C++ Opengl - 使用聚光灯照明

c++ - 使用 freeglut 设置 - glew - openGL

linux - 启用垂直同步时出现断断续续的 SDL+OpenGL 动画

iphone - 渲染到纹理或离屏帧缓冲区

opengl - 来自 FBO 的 glReadPixels 因多重采样而失败

opengl - 如何调整帧缓冲区中现有纹理附件的大小?

c++ - 绘制字体效果(下划线、删除线)freetype Library 和 OpenGl