十分简单, 首先百度搜一下自己想要的裂痕效果
比如:
然后对文字/图片设置shader:
shader_type canvas_item;
uniform sampler2D src;
vec2 rotateUV(vec2 uv, vec2 pivot, float rotation) {
float sine = sin(rotation);
float cosine = cos(rotation);
uv -= pivot;
uv.x = uv.x * cosine - uv.y * sine;
uv.y = uv.x * sine + uv.y * cosine;
uv += pivot;
return uv;
}
void fragment(){
vec4 cc = texture(TEXTURE, UV);
vec4 cs = texture(src, rotateUV(UV*8., vec2(.5), 3.14/10.));
float bright = cs.r*cs.g*cs.b;
COLOR = vec4(cc.rgb,min(cc.a,bright));
}
这里我用到了· rotateUV·平移旋转参数
- 从原本的图中获得色彩
- 从纹理图中将黑色区域转换为透明度
- 给原图贴上透明纹理效果
效果不错吧,你也可以试试
你会发现相同字母的裂纹是一样的,想想为什么,怎么做成不一样