这篇文章给大家介绍怎么在Unity3D中利用Shader实现一个扫描显示效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
shader实现如下:
Shader "XM/ScanEffect2"
{
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
_Clip("Clip", float) = 0
[KeywordEnum(None, Left, Up, Forward)]_Mode("Mode", Float) = 0
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard fullforwardshadows vertex:vert
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float4 localPos;
};
half _Glossiness;
half _Metallic;
fixed4 _Color;
float _Clip;
float _Mode;
void vert(inout appdata_full i, out Input o)
{
UNITY_INITIALIZE_OUTPUT(Input, o);
o.localPos = i.vertex;
}
void surf (Input i, inout SurfaceOutputStandard o) {
if(i.localPos.x >= _Clip && _Mode == 1 || i.localPos.y >= _Clip && _Mode == 2|| i.localPos.z >= _Clip && _Mode == 3)
{
clip(-1);
}
// Albedo comes from a texture tinted by color
fixed4 c = tex2D (_MainTex, i.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"
}
关于怎么在Unity3D中利用Shader实现一个扫描显示效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。