Unity Shader 溶解效果
程序员文章站
2024-02-12 23:12:40
...
简介
两种不同的溶解效果。第一种基于噪声图,利用其中的某一个通道比如R 通道,与阈值进行比较。如果小于0 ,则抛弃这个像素点。 第二种,在世界坐标下,如果当前片元的Y 轴坐标大于设定的偏移值,则抛弃这个像素点。
基本溶解效果
效果
原理
使用噪声图纹理,利用其中的某一个通道比如R 通道,与阈值进行比较。如果小于0 ,则抛弃这个像素点。
fixed4 frag (v2f i) : SV_Target
{
fixed4 bb = tex2D(_NoiseTex,i.uv);
float clipValue = bb.r -_Threshold;
clip(clipValue);
fixed4 aa = tex2D(_MainTex, i.uv);
float edgeFactor = saturate(clipValue / (_LineWidth * _Threshold));
return lerp(_OutColor,aa, edgeFactor);
}
从下到上的溶解效果
效果
原理
在世界坐标系下,比较 像素点的Y 值小于阈值,则抛弃这个像素。
fixed4 frag (v2f i) : SV_Target
{
float clip_value = _OffsetY - i.worldPos.y;
clip(clip_value);
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
float per =saturate( clip_value / _LineWidth);
return lerp (col ,_OutColor,1- per);
}
参考资料:
项目源码
下一篇: Unity Shader - 遮罩效果