我正在尝试将两个纹理绘制到包含透明度的 3D 空间。当它们不重叠时,它们可以正常工作:
但是,当一个纹理与另一个纹理重叠时,透明度意味着您可以透过后面的纹理看到:
我在初始化混合时使用 GL_SRC_ALPHA
和 GL_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/