alphatesting着色器“丢弃”操作不起作用 – GLES2

我在GLES2 (Galaxy S6)中写了这个shader来illustal alpha test 。 我觉得根本没有工作,因为我看不到有没有变化。 有什么我失踪?
任何语法错误?
我知道最好不要使用, ifshader但现在这是我需要的解决scheme。

 precision highp float; precision highp int; precision lowp sampler2D; precision lowp samplerCube; //0 - CMPF_ALWAYS_FAIL, //1 - CMPF_ALWAYS_PASS, //2 - CMPF_LESS, //3 - CMPF_LESS_EQUAL, //4 - CMPF_EQUAL, //5 - CMPF_NOT_EQUAL, //6 - CMPF_GREATER_EQUAL, //7 - CMPF_GREATER bool Is_Alpha_Pass(int func,float alphaRef, float alphaValue) { bool result = true; if (func==0) { result = false; break; } if (func==1) { result = true; break; } if (func==2) { result = alphaValue < alphaRef; break; } if (func==3) { result = alphaValue <= alphaRef; break; } if (func==4) { result = alphaValue == alphaRef; break; } if (func==5) { result = alphaValue != alphaRef; break; } if (func==6) { result = alphaValue >= alphaRef; break; } if (func==7) { result = alphaValue > alphaRef; break; } return result; } void FFP_Alpha_Test(in float func, in float alphaRef, in vec4 texel) { if (!Is_Alpha_Pass(int(func), alphaRef, texel.a)) discard; } 

https://www.khronos.org/opengles/sdk/docs/man3/html/glBlendFunc.xhtml

你检查了glblendfunc?

需要使用gl_alpha_test在客户端状态下启用

没有客户端的国家代码,我很难解决这个问题。