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
 | 
						|
}
 |