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