Unity Shader溶解效果

效果图

根据噪点图,去进行clip

clip解释: clip(-0.1); //小于0才会被clip掉 if(value < 0) { discard }

核心代码:

fixed4 frag (v2f i) : SV_Target  
{  
    fixed4 col = tex2D(_MainTex, i.texcoord);  
    float ClipTex = tex2D (_NoiseTex, i.texcoord/_Tile).r;  
    float ClipAmount = ClipTex - _Amount;   

    if(_Amount > 0)  
    {  
        if(ClipAmount < 0)  
        {  
            clip(-0.1);   //小于0才会被clip掉 if(value < 0) { discard }
        }  
        else
        {  
            if(ClipAmount < _DissSize)   
            {  
                float4 finalColor=lerp(_DissColor,_AddColor,ClipAmount/_DissSize)*2;  
                col = col * finalColor;  
            }  
        }  
    }  
    UNITY_OPAQUE_ALPHA(col.a);  
    return col;  
}  

示例下载

猜你喜欢

转载自blog.csdn.net/st75033562/article/details/129444005