glClearColor(1.0,1.0,1.0,1.0)使整个屏幕变为白色,而不仅仅是背景

时间:2018-08-08 18:56:03

标签: c++ opengl

当我使用glClearColor(0.0, 0.0, 0.0, 1.0);在黑色背景上绘制形状时,一切都完美地绘制在黑色背景上,如下所示:

enter image description here

现在,当我将RGB增大到接近白色(0.8、0.8、0.8、1.0)时,事物就会淡出,就像这样:

enter image description here

白色时,所有内容都会完全淡出:

enter image description here

将alpha更改为0.0也没有任何区别。我在每帧的开头调用这两个函数(它们的顺序没有区别):

glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

我想要的是显而易见的:能够在白色背景上看到我的蓝色箭头。

1 个答案:

答案 0 :(得分:4)

仅当在绘制箭头时启用混合时,问题中描述的行为才会发生。在绘制之前禁用混合,一切应该按预期进行:

glDisable(GL_BLEND);