【发布时间】:2017-02-17 04:55:33
【问题描述】:
所以我正在使用 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,似乎没有帮助。
【问题讨论】: