【问题标题】:OpenGL alpha blendingOpenGL Alpha 混合
【发布时间】:2011-12-14 16:09:03
【问题描述】:

我已经找到了 5349574673 页关于 Alpha 混合的内容,但我仍然无法获得想要的结果。 我正在尝试使用 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);效果很好,我可以画透明的东西

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

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

【问题讨论】:

  • 张贴图片。初始化代码看起来没问题。

标签: opengl alphablending lwjgl


【解决方案1】:

您的混合设置正确。然而,为了使混合工作,纹理必须包含一个 alpha 通道,当然是正确的值。然后图像加载过程必须保存 alpha 通道数据。可以看看图片加载和纹理生成代码吗?

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 2015-03-30
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多