OpenGL alpha混合

时间:2011-10-25 05:53:26

标签: opengl alphablending lwjgl

我在alpha混音上发现了5349574673页,但我仍然无法获得所需的结果。 我正在尝试使用opengl正确显示gif / png文件(使用透明度/半透明度)。

这是我的初始化位:

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); //I've seen this on most tutorials
glDisable(GL_DEPTH_TEST); //it's a 2D game
//...loading matrices and so on

我确定图像具有透明度,并且装入正确 glBlendFunc(GL_ONE,GL_ONE);但我无法判断它是否在alpha通道上执行任何操作,因为它会呈现为黑色=>混合工程
glColor4f(1F,1F,1F,0.3f);工作得很好,我可以画出透明的东西

P.S。我正在使用此示例http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game进行学习

修改的 我使用了用GIMP和其他纹理加载器编码的其他纹理,它现在工作正常。

1 个答案:

答案 0 :(得分:5)

您的混音设置是正确的。但是,为了混合工作,纹理必须包含一个alpha通道,当然要正确评估。然后必须通过图像加载过程保留alpha通道数据。我们可以看一下图片加载和纹理生成代码吗?