好吧,我正在修改一个 2D 开源游戏客户端,我试图为游戏对象纹理添加透明度。它已经读取并加载了 alpha 通道。纹理已经以 RGBA 格式和内部格式加载到 openGL 中。
问题是,当像素的 alpha 通道低于 255(或 1)时,它就不会出现在屏幕上。它没有忽略 alpha 通道并且只显示 RGB,它隐藏了像素。该客户端使用 OpenGL 和着色器进行绘图。
我已经通过调用: 和 启用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA )
了 glDisable(GL_DEPTH_TEST)
混合glColorMask(1,1,1,1)
。