CCProgram vs %{
precision highp float;
#include
#include
in vec3 a_position;
in vec4 a_color;
out vec4 v_color;
in float a_dist;
out float v_dist;
out vec3 out_pos;
uniform ARGS {
float inner_radius = 200.0;
};
void main () {
vec4 pos = vec4(a_position, 1);
pos = cc_matViewProj * cc_matWorld * pos;
v_color = a_color;
v_dist = a_dist;
out_pos = a_position;
gl_Position = pos;
}
}%
CCProgram fs %{
#if CC_SUPPORT_standard_derivatives
#extension GL_OES_standard_derivatives : enable
#endif
precision highp float;
#include
in vec4 v_color;
in float v_dist;
in vec3 out_pos;
in float pos_x;
void main () {
vec4 o = v_color;
ALPHA_TEST(o);
#if CC_SUPPORT_standard_derivatives
float aa = fwidth(v_dist);
#else
float aa = 0.05;
#endif
float dis = sqrt(pow(out_pos.x, 2.) + pow(out_pos.y, 2.));
if(dis < 200.) {
discard;
}
float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);
o.rgb *= o.a;
o *= alpha;
gl_FragColor = o;
}
}%