0
所以我使用的是OpenGL ES 2.0,我将透明对象渲染成一个在另一个之上,但是如果我在片段着色器中低于0.05,则任何东西都不呈现。我的渲染配置设置为:GLES 2.0+ Alpha没有显示
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)值。基本上,我将渲染纹理视为一组数据,并使用顶点着色器将值添加到不同的像素。
编辑:我使用浮动highp,似乎没有帮助。
你不应该需要highp;中性(fp16)足够精确,足以处理更多精度小于2dp的小数位数。 – solidpixel
好吧,无论什么原因,它只是在低于0.05的任何情况下都不起作用,因为0.049也是行不通的。对于我所做的事情,我能做的更好的价值越低。 –