在openGL中混合的问题(彩条示例)

时间:2011-05-18 09:35:44

标签: opengl blending

当我尝试渲染下面的颜色条四边形时,任何人都可以提供一些线索 enter image description here

看起来像这样: enter image description here

这是我的渲染代码:

    gl.glEnable(GL.GL_BLEND);
    gl.glBlendFunc(GL.GL_ONE, GL.GL_ZERO);
    gl.glBlendEquation(GL.GL_FUNC_ADD);

    gl.glEnable(GL.GL_ALPHA_TEST);
    gl.glAlphaFunc(GL.GL_GREATER, 0.01f);

    // do the drawing...

    gl.glDisable(GL.GL_TEXTURE_2D);

    gl.glDisable(GL.GL_ALPHA_TEST);

我确信解决方案很简单,而且我只是有一个脑力,但这只是其中的一天! 谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您尝试进行什么样的混合?要简单地绘制没有任何颜色混合或alpha通道的内容,您甚至不必使用GL_BLENDGL_ALPHA_TEST(同时禁用两者)。 GL_BLEND用于定义如何添加不同的“颜色层”(通常是如何应用Alpha通道),而GL_ALPHA_TEST决定尊重/忽略哪些alpha值。渲染四边形时还要检查顶点颜色(尝试渲染没有纹理的单色四边形,例如使用洋红色)。

然而,看着你的图像,我猜你会以某种方式禁止绘制到你的红色通道(glColorMask()) - 尽管有黄色,这让我很困惑。

答案 1 :(得分:0)

导入PNG文件时,RGBA会出现问题。