Shader 实现 - 高清圆角图片
前言
使用 Shader 实现,没有锯齿的高清圆角图片。
# 一. 效果
# 二. Effect
核心方法:
CCProgram fs %{
precision highp float;
#include <alpha-test>
#include <texture>
in vec4 v_color;
#if USE_TEXTURE
in vec2 v_uv0;
uniform sampler2D texture;
#endif
void main () {
vec4 o = vec4(1, 1, 1, 1);
#if USE_TEXTURE
o *= texture(texture, v_uv0);
float a = distance(v_uv0, vec2(0.5, 0.5));
o.a = 1.0 - smoothstep(0.49, 0.5, a);
#endif
o *= v_color;
ALPHA_TEST(o);
gl_FragColor = o;
}
}%
注意
该方法会影响合批,增加 drawcall
, 请根据实际情况使用,避免性能出现问题。