91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | Shader "Hidden/TerrainTools/Noise/Preview" | ||
|  | { | ||
|  |     Properties { _MainTex ("Texture", any) = "" {} } | ||
|  | 
 | ||
|  |     SubShader | ||
|  |     { | ||
|  |         ZTest Always Cull OFF ZWrite Off | ||
|  | 
 | ||
|  |         HLSLINCLUDE | ||
|  | 
 | ||
|  |         #include "UnityCG.cginc" | ||
|  | 
 | ||
|  |         sampler2D _MainTex; | ||
|  |         float4 _MainTex_TexelSize;      // 1/width, 1/height, width, height | ||
|  |         float  _Layer; | ||
|  |          | ||
|  |         struct appdata_t | ||
|  |         { | ||
|  |             float4 vertex : POSITION; | ||
|  |             float2 uv : TEXCOORD0; | ||
|  |         }; | ||
|  | 
 | ||
|  |         struct v2f | ||
|  |         { | ||
|  |             float4 vertex : SV_POSITION; | ||
|  |             float2 uv : TEXCOORD0; | ||
|  |         }; | ||
|  | 
 | ||
|  |         inline float4 remap( float4 n, float o, float p, float a, float b ) | ||
|  |         { | ||
|  |             return a.xxxx + (b.xxxx - a.xxxx) * (n - o.xxxx) / (p.xxxx - o.xxxx); | ||
|  |         } | ||
|  | 
 | ||
|  |         v2f vert( appdata_t v ) | ||
|  |         { | ||
|  |             v2f o; | ||
|  |              | ||
|  |             o.vertex = UnityObjectToClipPos( v.vertex ); | ||
|  |             o.uv = v.uv; | ||
|  | 
 | ||
|  |             return o; | ||
|  |         } | ||
|  | 
 | ||
|  |         ENDHLSL | ||
|  | 
 | ||
|  |         Pass | ||
|  |         { | ||
|  |             Name "Noise Preview (2D)" | ||
|  | 
 | ||
|  |             HLSLPROGRAM | ||
|  | 
 | ||
|  |             #pragma vertex vert | ||
|  |             #pragma fragment frag | ||
|  | 
 | ||
|  |             float4 frag( v2f i ) : SV_Target | ||
|  |             { | ||
|  |                 float r = UnpackHeightmap(tex2D(_MainTex, i.uv)); | ||
|  | 
 | ||
|  |                 // r = remap( r.xxxx, 0, 1, -4, 5 ); | ||
|  | 
 | ||
|  |                 float4 color = lerp( float4( 0, abs( r ), abs( r ), 1 ), float4( r.xxx, 1 ), max( sign( r ), 0 ) ); | ||
|  | 
 | ||
|  |                 // color the out of range values | ||
|  |                 color = lerp( color, float4( r - .9, 0, 0, 1 ), max( sign( r - 1 ), 0 ) );   // if over 1 | ||
|  | 
 | ||
|  |                 return color; | ||
|  |             } | ||
|  | 
 | ||
|  |             ENDHLSL | ||
|  |         } | ||
|  | 
 | ||
|  |         Pass | ||
|  |         { | ||
|  |             Name "Noise Preview (3D)" | ||
|  | 
 | ||
|  |             HLSLPROGRAM | ||
|  | 
 | ||
|  |             #pragma vertex vert | ||
|  |             #pragma fragment frag | ||
|  | 
 | ||
|  |             float4 frag( v2f i ) : SV_Target | ||
|  |             { | ||
|  |                 float r = UnpackHeightmap(tex2D(_MainTex, i.uv)); | ||
|  | 
 | ||
|  |                 return lerp( float4( 0, abs( r ), abs( r ), 1 ), float4( r.xxx, 1 ), max( sign( r ), 0 ) ); | ||
|  |             } | ||
|  | 
 | ||
|  |             ENDHLSL | ||
|  |         } | ||
|  |     } | ||
|  | } |