【问题标题】:Opengl Alpha Blending not working?Opengl Alpha 混合不起作用?
【发布时间】:2014-06-03 13:50:42
【问题描述】:

在我的 Opengl 应用程序 (lwjgl) 中,我启用了 alpha 混合,如下所示:

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

绘制两个渐变圆时的结果是这样的:

这怎么可能? (黑色的重叠其实是透明的……)

【问题讨论】:

  • 你先画了两个圆圈中的哪个?混合时,您需要将几何体重新渲染到前面。
  • 我该怎么做? “在另一个之上”的那个是第一个渲染的。
  • 您需要按对象的深度对对象进行排序,然后将它们拉回前面。我在这个答案中写了一个关于渲染透明度的各种方法的冗长概述:stackoverflow.com/questions/23280692/…
  • 渐变圆是否使用纹理?
  • 没有。我在片段着色器中计算它们,如下所示: color = vec4(red, green, blue, (1.0 - distanceTo00 / 1.0))

标签: java opengl transparency lwjgl alphablending


【解决方案1】:

我遇到了同样的问题,如果所有顶点都在同一平面上,请尝试glDepthFunc(GL_LEQUAL)

【讨论】:

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