我目前正在学习SpriteKit的SKEffect + SKShader在SKLabels上应用渐变色,我想知道是否有一种方法来勾勒出字体。 像这样: Image
目前,我正在使用这个代码,这样做很好,但这不应该是正确的方法。我的目标是让它更厚。
void main()
{
vec4 color = texture2D(u_texture, v_tex_coord);
float gradient = 0.0;
// Black Stroke if alpha value ranges from 0.1 to 0.99
if (color.a > 0.1 && color.a < 0.99){
gl_FragColor = vec4(0,0,0,1);
}
else{
if (v_tex_coord.y < 0.5){
gradient = 0.35 - v_tex_coord.y;
}
else if (v_tex_coord.y < 0.7){
gradient = -0.15 - v_tex_coord.y*0.005;
}
else if ( v_tex_coord.y >= 0.7){
gradient = -0.15 - 0.7*0.005;
}
color = vec4(gradient + color.r, gradient + color.g, gradient + color.b, color.a);
color.rgb *= color.a; // set background to alpha 0
gl_FragColor = color;
}
}
随意查看存储库。我昨天刚刚公开发布。