148 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | Shader ${ShaderCategory} | ||
|  | { | ||
|  |     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 | ||
|  | 
 | ||
|  |         struct appdata_t | ||
|  |         { | ||
|  |             float4 vertex : POSITION; | ||
|  |             float2 uv : TEXCOORD0; | ||
|  |         }; | ||
|  | 
 | ||
|  |         struct v2f | ||
|  |         { | ||
|  |             float4 vertex : SV_POSITION; | ||
|  |             float2 uv : TEXCOORD0; | ||
|  |         }; | ||
|  | 
 | ||
|  |         v2f vert( appdata_t v ) | ||
|  |         { | ||
|  |             v2f o; | ||
|  |              | ||
|  |             o.vertex = UnityObjectToClipPos( v.vertex ); | ||
|  |             o.uv = v.uv; | ||
|  | 
 | ||
|  |             return o; | ||
|  |         } | ||
|  | 
 | ||
|  |         ENDHLSL | ||
|  | 
 | ||
|  |         BEGINPASSTEMPLATE | ||
|  |          | ||
|  |         // Pass | ||
|  |         // { | ||
|  |         //     Name "${NoiseName} Raw Noise Blit (2D)" | ||
|  | 
 | ||
|  |         //     HLSLPROGRAM | ||
|  | 
 | ||
|  |         //     #pragma vertex vert | ||
|  |         //     #pragma fragment frag | ||
|  | 
 | ||
|  |         //     ${Includes} | ||
|  | 
 | ||
|  |         //     float4 frag( v2f i ) : SV_Target | ||
|  |         //     { | ||
|  |         //         float3 pos = ApplyNoiseTransform( float3(i.uv.x, 0, i.uv.y) - float3(.5, 0, .5) ); | ||
|  | 
 | ||
|  |         //         float n = noise_${VariantName}( pos, ${GetInputs} ); | ||
|  | 
 | ||
|  |         //         return n; | ||
|  |         //     } | ||
|  | 
 | ||
|  |         //     ENDHLSL | ||
|  |         // } | ||
|  | 
 | ||
|  |         Pass // 0 - 2D ${NoiseName} Noise | ||
|  |         { | ||
|  |             Name "${NoiseName} Raw Noise Blit (2D)" | ||
|  | 
 | ||
|  |             HLSLPROGRAM | ||
|  | 
 | ||
|  |             #pragma vertex vert | ||
|  |             #pragma fragment frag | ||
|  |             #pragma shader_feature USE_NOISE_TEXTURE | ||
|  | 
 | ||
|  |             ${Includes} | ||
|  | 
 | ||
|  | #if USE_NOISE_TEXTURE | ||
|  | 
 | ||
|  |             sampler2D _NoiseTex; | ||
|  | 
 | ||
|  | #endif | ||
|  | 
 | ||
|  |             float4 frag( v2f i ) : SV_Target | ||
|  |             { | ||
|  |                 // calc pos for center of pixel | ||
|  |                 float3 uv = float3( i.uv.x, 0, i.uv.y ) - float3( .5, 0, .5 ); | ||
|  | 
 | ||
|  | #if USE_NOISE_TEXTURE | ||
|  |                  | ||
|  |                 float pos = tex2D( _NoiseTex, i.uv ).r * _NoiseTransform._m00 + _NoiseTransform._m13; | ||
|  | 
 | ||
|  | #else | ||
|  | 
 | ||
|  |                 float3 pos = ApplyNoiseTransform( uv.xyz ); | ||
|  | 
 | ||
|  | #endif | ||
|  | 
 | ||
|  |                 float n = noise_${VariantName}( pos, ${GetInputs} ); | ||
|  | 
 | ||
|  |                 return PackHeightmap(n); | ||
|  |             } | ||
|  | 
 | ||
|  |             ENDHLSL | ||
|  |         } | ||
|  | 
 | ||
|  |         Pass // 1 - 3D ${NoiseName} Noise | ||
|  |         { | ||
|  |             Name "${NoiseName} Raw Noise Blit (3D)" | ||
|  | 
 | ||
|  |             HLSLPROGRAM | ||
|  | 
 | ||
|  |             #pragma vertex vert | ||
|  |             #pragma fragment frag | ||
|  |             #pragma shader_feature _ USE_NOISE_TEXTURE | ||
|  | 
 | ||
|  |             ${Includes} | ||
|  | 
 | ||
|  | #if USE_NOISE_TEXTURE | ||
|  | 
 | ||
|  |             sampler3D _NoiseTex; | ||
|  | 
 | ||
|  | #endif | ||
|  | 
 | ||
|  |             float _UVY; | ||
|  | 
 | ||
|  |             float4 frag( v2f i ) : SV_Target | ||
|  |             { | ||
|  | #if USE_NOISE_TEXTURE | ||
|  | 
 | ||
|  |                 float pos = tex3D( _NoiseTex, float3(i.uv.x, _UVY, i.uv.y) ).r; | ||
|  | 
 | ||
|  | #else | ||
|  | 
 | ||
|  |                 float3 pos = ApplyNoiseTransform( float3(i.uv.x, _UVY, i.uv.y) - float3(.5, 0, .5) ); | ||
|  | 
 | ||
|  | #endif | ||
|  | 
 | ||
|  |                 float n = noise_${VariantName}( pos, ${GetInputs} ); | ||
|  | 
 | ||
|  |                 return PackHeightmap(n); | ||
|  |             } | ||
|  | 
 | ||
|  |             ENDHLSL | ||
|  |         } | ||
|  | 
 | ||
|  |         ENDPASSTEMPLATE | ||
|  |     } | ||
|  | } |