unity脚本控制逐渐消失_Unity3D使用Shader实现腐蚀消失

这篇博客介绍了如何使用Unity3D的Shader来创建一个模型腐蚀并逐渐消失的效果。作者提供了设置面板的截图,并详细解释了实现原理,即通过获取噪点图上的颜色转换为灰度,与预设的透明度阈值比较,决定像素是否被剪裁。Shader代码中定义了相关参数,如噪点图、腐蚀边缘大小、颜色等,以供用户自定义效果。
摘要由CSDN通过智能技术生成

本片shader实现的效果是模型腐蚀消失,且腐蚀的边缘大小可以调、颜色可调。效果图如下:

设置面板如下:

使用时需要给ClipMask参数给一张噪点图,设置合适的cliplinesize和cliplinecolor,然后调整clipalpha就可以了。

原理是通过获取噪点图上对应的颜色,转换成灰度,然后用灰度与clipalpha对比,如果大于则被剪裁掉。

shader实现如下:

Shader "XM/CorrosionEffect" {

Properties {

_Color ("Color", Color) = (1,1,1,1)

_MainTex ("Albedo (RGB)", 2D) = "white" {}

_Glossiness ("Smoothness", Range(0,1)) = 0.5

_Metallic ("Metallic", Range(0,1)) = 0.0

_ClipMaskTex ("Clip Mask", 2D) = "white" {}

_ClipGray ("Clip Alpha", Range(0.0,1.0)) = 0.0

_ClipLineSize ("Clip Line Size", Range(0,1)) = 0.0

_ClipLineColor("Clip Line Color", Color) = (1,1,1,1)

}

SubShader {

Tags { "RenderType"="Opaque" }

LOD 200

CGPROGRAM

// Physically based Standard lighting model, and enable shadows on all light types

#pragma surface surf Standard fullforwardshadows

// Use shader model 3.0 target, to get nicer looking lighting

#pragma target 3.0

sampler2D _MainTex;

sampler2D _ClipMaskTex;

struct Input {

float2 uv_MainTex;

};

half _Glossiness;

half _Metallic;

fixed4 _Color;

fixed _ClipGray;

fixed _ClipLineSize;

fixed4 _ClipLineColor;

void surf (Input IN, inout SurfaceOutputStandard o) {

fixed4 m = tex2D (_ClipMaskTex, IN.uv_MainTex);

fixed gray = Luminance(m.rgb);

if(gray >= _ClipGray)

{

clip(-1);

}

fixed4 c;

if(gray >= _ClipGray - _ClipLineSize)

{

c = _ClipLineColor;

}

else

{

// Albedo comes from a texture tinted by color

c = tex2D (_MainTex, IN.uv_MainTex) * _Color;

}

o.Albedo = c.rgb;

// Metallic and smoothness come from slider variables

o.Metallic = _Metallic;

o.Smoothness = _Glossiness;

o.Alpha = c.a;

}

ENDCG

}

FallBack "Diffuse"

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值