| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | // Upgrade NOTE: upgraded instancing buffer 'Props' to new syntax.Shader "Custom/Respawn" {	Properties {		_Color ("Color", Color) = (1,1,1,1)		[HDR]_Emission ("Emission", Color) = (0,0,0,0)		_MainTex ("Albedo", 2D) = "white" {}		_Normal ("Normal", 2D) = "bump" {}		_MetallicSmooth ("Metallic (RGB) Smooth (A)", 2D) = "white" {}		_AO ("AO", 2D) = "white" {}		[HDR]_EdgeColor1 ("Edge Color", Color) = (1,1,1,1)		_Noise ("Noise", 2D) = "white" {}		[Toggle] _Use_Gradient ("Use Gradient?", Float) = 1		_Gradient ("Gradient", 2D) = "white" {}		_Glossiness ("Smoothness", Range(0,1)) = 0.5		_Metallic ("Metallic", Range(0,1)) = 0.0		[PerRendererData]_Cutoff ("Cutoff", Range(0,1)) = 0.0		_EdgeSize ("EdgeSize", Range(0,1)) = 0.2		_NoiseStrength ("Noise Strength", Range(0,1)) = 0.4		_DisplaceAmount ("Displace Amount", Float) = 1.5		_cutoff ("cutoff", Range(0,1)) = 0.0			}	SubShader {		Tags { "Queue"="AlphaTest" "RenderType"="TransparentCutout" "IgnoreProjector"="True" }		Cull Off		LOD 200				CGPROGRAM		// Physically based Standard lighting model, and enable shadows on all light types		#pragma surface surf Standard fullforwardshadows vertex:vert addshadow 		// Use shader model 3.0 target, to get nicer looking lighting		#pragma target 3.0		#pragma multi_compile __ _USE_GRADIENT_ON		sampler2D _MainTex;		sampler2D _Noise;		sampler2D _Gradient;		sampler2D _Normal;		sampler2D _MetallicSmooth;		sampler2D _AO;		struct Input {			float2 uv_Noise;			float2 uv_MainTex;			fixed4 color : COLOR0;			float3 worldPos;		};		half _Glossiness, _Metallic, _Cutoff, _EdgeSize, _NoiseStrength, _DisplaceAmount;		half _cutoff;		half4 _Color, _EdgeColor1, _Emission;		void vert (inout appdata_full v, out Input o) {        	UNITY_INITIALIZE_OUTPUT(Input,o);        	float3 pos = mul((float3x3)unity_ObjectToWorld, v.vertex.xyz);        	//pos.x += _cutoff*5;        	float4 tex = tex2Dlod(_Noise, float4(pos, 0)*0.5);            	float4 Gradient = tex2Dlod (_Gradient, float4(v.texcoord.xy,0,0));        	float mask = smoothstep(_Cutoff, _Cutoff - 0.3, 1-Gradient);          	float displacementAmount = lerp(0, _DisplaceAmount, _cutoff);        	//v.vertex.xyz += mul((float3x3)unity_WorldToObject, float3(0, vertexOffset, 0));        	//v.vertex.xyz = lerp(float3(0,0,0), v.vertex.xyz, _cutoff);    	  }		// Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.		// See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.		// #pragma instancing_options assumeuniformscaling		UNITY_INSTANCING_BUFFER_START(Props)			// put more per-instance properties here		UNITY_INSTANCING_BUFFER_END(Props)		void surf (Input IN, inout SurfaceOutputStandard o) {			float2 uv = IN.uv_Noise;			uv.y += _cutoff;			half3 Noise = tex2D (_Noise, uv);			Noise.r = lerp(0, 1, Noise.r);			half4 MetallicSmooth = tex2D (_MetallicSmooth, IN.uv_MainTex);			//_cutoff  = lerp(0, _cutoff, _cutoff);			_cutoff = 1-_cutoff;			#if _USE_GRADIENT_ON			half3 Gradient = tex2D (_Gradient, IN.uv_MainTex);			half Edge = smoothstep(_Cutoff, _Cutoff - _EdgeSize, 1-(Gradient + Noise.r*(1-Gradient)*_NoiseStrength));			#else			half Edge = smoothstep(_cutoff + _EdgeSize, _cutoff, clamp(Noise.r, _EdgeSize, 1));			#endif			fixed4 c = tex2D (_MainTex, IN.uv_MainTex);			fixed3 EmissiveCol = c.a * _Emission;			o.Albedo = _Color;			o.Occlusion = tex2D (_AO, IN.uv_MainTex);			o.Emission = EmissiveCol + _EdgeColor1 * Edge;			o.Normal = UnpackNormal (tex2D (_Normal, IN.uv_MainTex));			o.Metallic = MetallicSmooth.r * _Metallic;			o.Smoothness = MetallicSmooth.a * _Glossiness;			clip(Noise - _cutoff);		}		ENDCG	}	FallBack "Diffuse"}
 |