GLES 2.0+ Alpha未显示

时间:2017-02-16 02:21:05

标签: android opengl-es

所以我使用的是OpenGL ES 2.0,我将透明对象叠加在一起,所有内容似乎都在工作,但是如果我在片段着色器中低于0.05,则无法渲染。我的渲染配置设置为:

glClearColor(0, 0, 0, 0);
glDisable(GL_DITHER);
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

我已经尝试了GL_UNSIGNED_BYTE和GL_UNSIGNED_SHORT_4_4_4_4作为渲染目标纹理类型而没有运气。

我还能做些什么来提高alpha值的精确度和混合效果吗?使用0.05作为最小alpha值,它只给我20个(1.0 / 0.05 = 20)值。基本上我将渲染纹理视为数据数组,并使用顶点着色器将值添加到不同的像素。

编辑:我使用float highp,似乎没有帮助。

1 个答案:

答案 0 :(得分:0)

你没有提到你在着色器中使用的精度 - 也许你应该将它设置为highdp(在片段着色器中),看看这是否有帮助:

precision highp float;

(如果你需要知道你需要什么样的精度,你可以使用glGetShaderPrecisionFormat)