为什么我的半透明顶点会使OpenGL中的背景对象更亮?

时间:2009-04-06 15:43:34

标签: opengl opacity

我在彩色立方体前面渲染4个顶点(正方形)。顶点为白色,但在0.5f处混合。

  

相关:Why does my colored cube not work with GL_BLEND?

有人可以告诉我为什么彩色立方体在被半透明方块遮挡时会显得更亮?

在前面没有正方形的立方体渲染:

Normal cube http://img408.imageshack.us/img408/2853/normalcube.png

然后,用正方形渲染:

Cube with square http://img142.imageshack.us/img142/6255/brightsquare.png

请参阅用于create the colored cube的代码,用于实际draw the cube的代码以及code where the cube and square are rendered

这是我的init函数中的代码:

glEnable(GL_CULL_FACE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

1 个答案:

答案 0 :(得分:2)

我想这是因为你的半透明方块被添加到现有像素中,从而增加了它们的强度。

documentation for glBlendFunc()建议将第二个参数设置为GL_ONE_MINUS_SRC_ALPHA,这是实现透明度的样板。试试吧。