java - opengl/lwjgl 的透明度问题

标签 java opengl lwjgl

我正在尝试将两个纹理绘制到包含透明度的 3D 空间。当它们不重叠时,它们可以正常工作:

enter image description here

但是,当一个纹理与另一个纹理重叠时,透明度意味着您可以透过后面的纹理看到:

enter image description here

我在初始化混合时使用 GL_SRC_ALPHAGL_ONE_MINUS_SRC_ALPHA

最佳答案

您需要深度排序或使用 alpha 测试:

glEnable(GL_ALPHA_TEST);
glAlphaTest(GL_GREATER, 0.0f);

它只会绘制 alpha 值大于 0f 的像素。但是,这不适用于混合透明像素。 Andon 的解决方案是我使用的解决方案,尽管我从事 2D 工作并且我必须具有烟雾效果的透明度。

关于java - opengl/lwjgl 的透明度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364849/

相关文章:

c++ - 为什么用这个 OpenGL 上下文创建的窗口会以透明方式打开?

opengl - GLEW 链接器错误(对 `__glewBindVertexArray' 的 undefined reference )

scala - 在 LWJGL 3.1.4 中使用 stackPush() 时遇到问题 - NoSuchMethodError

java - 我称之为 glOrtho 的矩阵模式重要吗?

java - 您如何使用简单的自定义转换器访问字段注释?

java - `nums[nums.length - 1]; ` 是范围还是单个元素?

c++ - 如何在 nvidia 驱动程序中使用 opengl?

java - 为什么余数(模数)除法返回负数

java - 如何检测 -Xmx 参数的实际值? Runtime.getRuntime().maxMemory() 不准确

java - 我正在尝试使用 GLU.gluPerspective(),但它给了我静态引用错误