93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   |     Shader ${ShaderCategory} | ||
|  |     { | ||
|  | 
 | ||
|  |         Properties | ||
|  |         { | ||
|  |             _MainTex ("Texture", any) = "" {} | ||
|  |         } | ||
|  | 
 | ||
|  |         SubShader | ||
|  |         { | ||
|  | 
 | ||
|  |             ZTest Always Cull Off ZWrite Off | ||
|  | 
 | ||
|  |             HLSLINCLUDE | ||
|  | 
 | ||
|  |             #include "UnityCG.cginc" | ||
|  |             #include "Packages/com.unity.terrain-tools/Shaders/TerrainTools.hlsl" | ||
|  | 
 | ||
|  |             sampler2D _MainTex; | ||
|  |             float4 _MainTex_TexelSize;      // 1/width, 1/height, width, height | ||
|  | 
 | ||
|  |             sampler2D _BrushTex; | ||
|  | 
 | ||
|  |             float4 _BrushParams; | ||
|  |             #define BRUSH_STRENGTH      (_BrushParams[0]) | ||
|  |             #define BRUSH_TARGETHEIGHT  (_BrushParams[1]) | ||
|  |             #define BRUSH_PINCHAMOUNT   (_BrushParams[2]) | ||
|  |             #define BRUSH_ROTATION      (_BrushParams[3]) | ||
|  | 
 | ||
|  |             struct appdata_t | ||
|  |             { | ||
|  |                 float4 vertex : POSITION; | ||
|  |                 float2 pcUV : TEXCOORD0; | ||
|  |             }; | ||
|  | 
 | ||
|  |             struct v2f | ||
|  |             { | ||
|  |                 float4 vertex : SV_POSITION; | ||
|  |                 float2 pcUV : TEXCOORD0; | ||
|  |             }; | ||
|  | 
 | ||
|  |             v2f vert(appdata_t v) | ||
|  |             { | ||
|  |                 v2f o; | ||
|  |                 o.vertex = UnityObjectToClipPos(v.vertex); | ||
|  |                 o.pcUV = v.pcUV; | ||
|  |                 return o; | ||
|  |             } | ||
|  | 
 | ||
|  |             ENDHLSL | ||
|  | 
 | ||
|  |             BEGINPASSTEMPLATE | ||
|  |              | ||
|  |             Pass // ${NoiseName} Noise Fill | ||
|  |             { | ||
|  |                 Name "${NoiseName} Noise Fill" | ||
|  | 
 | ||
|  |                 HLSLPROGRAM | ||
|  |                  | ||
|  |                 #pragma vertex vert | ||
|  |                 #pragma fragment frag | ||
|  | 
 | ||
|  |                 ${Includes} | ||
|  | 
 | ||
|  |                 float4 _TerrainXform; | ||
|  |                 float4 _TerrainScale; | ||
|  | 
 | ||
|  |                 float2 TransformPosition( float2 brushUV ) | ||
|  |                 { | ||
|  |                     return _TerrainXform.xz + brushUV * _TerrainScale.xz; | ||
|  |                 } | ||
|  | 
 | ||
|  |                 float4 frag(v2f i) : SV_Target | ||
|  |                 { | ||
|  |                     float h = UnpackHeightmap( tex2D( _MainTex, i.pcUV ) ); | ||
|  |                      | ||
|  |                     float2 pos = TransformPosition( i.pcUV ); | ||
|  | 
 | ||
|  |                     float n = noise_${VariantName}( pos, ${GetDefaultInputs} ); | ||
|  |                      | ||
|  |                     return PackHeightmap( n ); | ||
|  |                     // return PackHeightmap( lerp( h + n, n, OVERWRITE_HEIGHT ) ); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 ENDHLSL | ||
|  |             } | ||
|  | 
 | ||
|  |             ENDPASSTEMPLATE | ||
|  |         } | ||
|  | 
 | ||
|  |     Fallback Off | ||
|  | } |