OpenGL alpha混合

adr*_*on3 6 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
Run Code Online (Sandbox Code Playgroud)

我确定图像有透明度,并且正确加载.
glBlendFunc(GL_ONE,GL_ONE); 但我无法判断它是否在alpha通道上做任何事情,因为它会渲染为黑色=>混合工作
glColor4f(1f,1f,1f,0.3f); 工作得很好,我可以画出透明的东西

PS我正在使用这个例子http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game进行学习

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

dat*_*olf 5

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