This can be done slowly disappear shader effects, the effect is the ablation
the shader code
Shader "Kaima/Dissolve/EdgeColor" { Properties { _MainTex ("Texture", 2D) = "white" {} _NoiseTex("Noise", 2D) = "white" {} _Threshold("Threshold", Range(0.0, 1.0)) = 0.5 _EdgeLength("Edge Length", Range(0.0, 0.2)) = 0.1 _EdgeColor ( " Edge Color " , Color) = ( . 1 , . 1 , . 1 , . 1 ) } SubShader { Tags { " Queue " = " the Geometry " " RenderType " = " of Opaque " } Pass { Cull Off // to render secure the effect of the back surface correct CGPROGRAM #pragma Vertex Vert #pragma the fragment frag #include"UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; float2 uvMainTex : TEXCOORD0; float2 uvNoiseTex : TEXCOORD1; }; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _NoiseTex; float4 _NoiseTex_ST; float _Threshold; float _EdgeLength; fixed4 _EdgeColor; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uvMainTex = TRANSFORM_TEX(v.uv, _MainTex); o.uvNoiseTex = TRANSFORM_TEX(v.uv, _NoiseTex); return o; } fixed4 frag (v2f i) : SV_Target { //镂空 fixed cutout = tex2D(_NoiseTex, i.uvNoiseTex).r; clip(cutout - _Threshold); //边缘颜色 if(cutout - _Threshold < _EdgeLength) return _EdgeColor; fixed4 col = tex2D(_MainTex, i.uvMainTex); return col; } ENDCG } } }
Select this to create shaders shaders, this is the last appearance
Texture posted pictures of a subject, Noise paste noise maps
Threshold control disappear or appear (see specific implementation needs)
EdgeLength white edge noise control map (see their own preferences adjusted)
Attached below a noise map