You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
| 
											2 years ago
										 | Shader "Custom/Terrain" | ||
|  | { | ||
|  |     Properties { | ||
|  |         _Color ("Color", Color) = (1,1,1,1) | ||
|  |         _BlendMin("BlendMin", Range(0,1)) = 0.5 | ||
|  |         _BlendMax("BlendMax", Range(0,1)) = 0.6 | ||
|  |          | ||
|  |         _MainTex ("MainTexture", 2D) = "white" {} | ||
|  |         _MudTex ("Mud", 2D) = "white" {} | ||
|  |         _GrassTex ("Grass", 2D) = "white" {} | ||
|  |         _NoiseTex  ("Noise", 2D) = "white" {} | ||
|  |     } | ||
|  |     SubShader { | ||
|  |         Tags { "RenderType" = "Opaque" } | ||
|  |         CGPROGRAM | ||
|  |         #pragma surface surf Lambert | ||
|  |         #pragma target 3.0 | ||
|  | 
 | ||
|  |         sampler2D _MainTex; | ||
|  |         fixed4 _Color; | ||
|  |         fixed _BlendMin; | ||
|  |         fixed _BlendMax; | ||
|  |         sampler2D _MudTex; | ||
|  |         sampler2D _GrassTex; | ||
|  |         sampler2D _NoiseTex; | ||
|  | 
 | ||
|  |         struct Input | ||
|  |         { | ||
|  |             float2 uv_MainTex; | ||
|  |             float2 uv_MudTex; | ||
|  |             float2 uv_GrassTex; | ||
|  |             float2 uv_NoiseTex; | ||
|  |         }; | ||
|  | 
 | ||
|  |         void surf (Input IN, inout SurfaceOutput o) { | ||
|  |             fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; | ||
|  |             fixed4 mud = tex2D(_MudTex, IN.uv_MudTex); | ||
|  |             fixed4 grass = tex2D(_GrassTex, IN.uv_GrassTex); | ||
|  | 
 | ||
|  |             fixed2 uvNoise = IN.uv_NoiseTex; | ||
|  |             uvNoise.x += 0.01*_Time.y; | ||
|  |             fixed4 noise = tex2D(_NoiseTex, uvNoise); | ||
|  |             fixed3 col =float3(1,1,1); | ||
|  |             if(c.r<_BlendMin){ | ||
|  |                 col=grass.rgb; | ||
|  |             } | ||
|  |             else if(c.r>_BlendMax){ | ||
|  |                 col=mud.rgb; | ||
|  |             } | ||
|  |             else{ | ||
|  |                 col = lerp(grass.rgb, mud.rgb,(c.r-_BlendMin)/(_BlendMax-_BlendMin)); | ||
|  |             } | ||
|  |             if(noise.r<0.5){ | ||
|  |                 col *=noise*2; | ||
|  |             } | ||
|  |             o.Albedo = col; | ||
|  |             o.Alpha = c.a; | ||
|  |         } | ||
|  |         ENDCG | ||
|  |     } | ||
|  |     FallBack "Diffuse" | ||
|  | } |