我在开发 3D Android 应用程序时遇到了麻烦。我在回答我自己的问题时简要提到了它,但我一直无法弄清楚为什么我不能从 .png 图像中获得透明度。
纹理是透明的,我在 Windows 上的 OpenGL3+ 框架中进行了检查,它们在正确的部分显示为透明的。
我的(简单占位符)片段着色器代码以:
vec4 finalColor = ambient + diffuse;
finalColor.a = colorMap.a;
gl_FragColor = finalColor;
我试过finalColor.a = 0.1;
哪个不起作用。
我已将此添加到我的代码中,但无济于事:
Gdx.gl20.glEnable(GL20.GL_DEPTH_TEST);
Gdx.gl20.glBlendFunc(GL20.GL_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl20.glEnable(GL20.GL_BLEND);
我什至检查并更改了:
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.r = cfg.g = cfg.b = cfg.a = 8;
我认为这是每个通道的位数。
对此的任何帮助将不胜感激,我只是希望我没有忽略任何事情。这不是一个大问题,我或多或少可以在没有透明度的情况下完成我的项目,但我真的很想知道为什么我不能让它工作。