1

我在非默认 FBO 上渲染几何图形,并将其作为整数纹理应用到在默认 FBO 上渲染的几何图形。要清除非默认 FBO 上的颜色,我正在使用 glClearBufferiv() 调用。在我的情况下,我没有得到什么是 drawBuffer (第二个参数)。我尝试使用 0,但它不起作用。它不会清除颜色。

GLint cl[]={32000,32000,32000,32767};
glClearBufferiv(GL_COLOR, 0, cl);

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

我的碎片着色器:

out ivec4 fragColor;

void main()
{
fragColor = ivec4(0,32767,0,32767);
}

有了这个,它呈现绿色几何,但外部颜色是黑色。

我有 1 个深度和颜色附件。我调用drawbuffers如下:

GLenum buffers[] = { GL_COLOR_ATTACHMENT0};
glDrawBuffers(1,buffers);
GLint cl[]={32000,32000,32000,32767};
glClearBufferiv(GL_COLOR, 0, cl); or
 glClearBufferiv(GL_COLOR, GL_DRAW_BUFFER0, cl)

但仍然是同样的错误。

4

0 回答 0