Godot - Shader - 文字/图片 添加裂痕

十分简单, 首先百度搜一下自己想要的裂痕效果
比如:


然后对文字/图片设置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·平移旋转参数

  • 从原本的图中获得色彩
  • 从纹理图中将黑色区域转换为透明度
  • 给原图贴上透明纹理效果

效果不错吧,你也可以试试

你会发现相同字母的裂纹是一样的,想想为什么,怎么做成不一样

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自VR设计云课堂[//www.greatytc.com/u/c7ffdc4b379e]Unity S...
    水月凡阅读 1,071评论 0 0
  • 动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入...
    JumboWu阅读 2,143评论 0 24
  • 文章转自:https://onevcat.com/2013/07/shader-tutorial-1/ Shade...
    Lamzz阅读 3,632评论 1 7
  • 不泯iOS阅读 259评论 0 0
  • 昨天晚上的读书会,和大家分享了如何写六时书。六时书是金刚四宝中,个人执行最差的。其实也是四宝中最容易实际行动的。因...
    热瓦昆空阅读 713评论 2 9