| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | 
							- Shader "Enviro3/Standard/WeatherTexture"  
 
- {
 
- 	Properties 
 
- 	{
 
- 		_Coverage ("Coverage", Range(0,1)) = 0.5
 
- 		_Tiling ("Tiling", Range(1,100)) = 10
 
- 	}
 
- 	SubShader 
 
- 	{  
 
- 		Tags { "RenderType"="Opaque" }
 
- 		LOD 200
 
- 		Pass { 
 
- 			CGPROGRAM 
 
- 			#pragma vertex vert
 
- 			#pragma fragment frag
 
- 			#include "UnityCG.cginc"
 
- 			#include "../Includes/NoiseInclude.cginc"
 
- 			#pragma target 3.0
 
- 			#pragma exclude_renderers gles 
 
- 			#pragma multi_compile_local __ ENVIRO_DUAL_LAYER 
 
- 			sampler2D _MainTex;
 
- 		    struct VertexInput 
 
- 		    {
 
-   				half4 vertex : POSITION;
 
-  				float2 uv : TEXCOORD0;	
 
-         	};
 
-             struct VertexOutput 
 
- 			{
 
-            		float4 position : SV_POSITION;
 
-  				float2 uv : TEXCOORD0;
 
-             }; 
 
- 			          
 
-             VertexOutput vert (appdata_img v) 
 
- 			{
 
-  			 	VertexOutput o;
 
-  				o.position = UnityObjectToClipPos(v.vertex);				
 
-  				o.uv = v.texcoord;
 
-  				return o; 
 
-             }       
 
-  		     
 
-  			float4x4 world_view_proj;
 
-  
 
-  			float _CoverageLayer1;  
 
- 			float _CoverageLayer2;  
 
- 			float _CloudsTypeLayer1;
 
- 			float _CloudsTypeLayer2;
 
- 			float _WorleyFreq1Layer1; 
 
- 			float _WorleyFreq1Layer2; 
 
- 			float _WorleyFreq2Layer1; 
 
- 			float _WorleyFreq2Layer2; 
 
- 			float _DilateCoverageLayer1; 
 
- 			float _DilateCoverageLayer2; 
 
- 			float _DilateTypeLayer1; 
 
- 			float _DilateTypeLayer2;
 
- 			float _CloudsTypeModifierLayer1; 
 
- 			float _CloudsTypeModifierLayer2;
 
- 			float4 _LocationOffset;
 
- 			float3 _WindDirection;
 
- 			float _WindSpeed;
 
- 		
 
-  			float4 frag(VertexInput input) : SV_Target 
 
-  			{  
 
- 				float2 uv = input.uv;
 
- 				float2 windOffsetLayer1 = _WindDirection.xy;
 
- 				//float2 windOffsetLayer1 = 0.0f;
 
- 				float2 fillerUV = uv.xy + windOffsetLayer1 + _LocationOffset.xy;
 
- 				float covFiller = worleyFbm2DFiller(fillerUV * 2, 2) * 1.2;
 
- 				///////Layer 1
 
- 				//float2 offset_pos_Layer1_1 = windOffsetLayer1 + float2(0.1,0.5) + _LocationOffset.xy;
 
- 				//float2 offset_pos_Layer1_2 = windOffsetLayer1 + float2(0.4,-0.5) + _LocationOffset.xy;
 
- 				//float2 offset_pos_Layer1_3 = windOffsetLayer1 + float2(-0.2,0.9) + _LocationOffset.xy;
 
- 				//float2 sampling_pos_Layer1_1 = float2(uv.xy + offset_pos_Layer1_1) * _TilingLayer1;
 
- 				//float2 sampling_pos_Layer1_2 = float2(uv.xy + offset_pos_Layer1_2) * _TilingLayer1;
 
- 				//float2 sampling_pos_Layer1_3 = float2(uv.xy + offset_pos_Layer1_3) * _TilingLayer1;
 
- 				//Perlin Noises
 
- 				//float perlin_Layer1_1 = saturate(CalculatePerlinTileing(sampling_pos_Layer1_1.xy,float2(_TilingLayer1, _TilingLayer1)));
 
- 				//float perlin_Layer1_2 = saturate(CalculatePerlinTileing(sampling_pos_Layer1_2.xy,float2(_TilingLayer1, _TilingLayer1)));
 
- 				//float perlin_Layer1_3 = saturate(CalculatePerlinTileing(sampling_pos_Layer1_3.xy,float2(_TilingLayer1, _TilingLayer1)));
 
- 				
 
- 				//Worley Noise
 
- 				float worley1Layer1 = worley2(windOffsetLayer1 + _LocationOffset.xy + uv.xy * _WorleyFreq1Layer1, 1);
 
- 				float worley2Layer1 = worley2(windOffsetLayer1 + _LocationOffset.xy + uv.xy * _WorleyFreq2Layer1, 1);
 
- 				//float perlin_Layer1_Combined = saturate(perlin_Layer1_1 + (perlin_Layer1_2 - perlin_Layer1_3) + worleyLayer1);
 
- 				float dilateCoverageLayer1 = dilate_perlin_worley(worley1Layer1,worley2Layer1,_DilateCoverageLayer1); 
 
- 				//Coverage Layer
 
- 				float coverageLayer1 = saturate(dilateCoverageLayer1 + (covFiller * _CoverageLayer1));
 
- 			
 
- 				float dilateTypeLayer1 = dilate_perlin_worley(worley1Layer1,worley2Layer1,_DilateTypeLayer1);
 
- 				float typeLayer1 = saturate(dilateTypeLayer1 * _CloudsTypeModifierLayer1);
 
- 				///Layer 1 End
 
- #ifdef ENVIRO_DUAL_LAYER
 
- 				///////Layer 2
 
- 				//float2 offset_pos_Layer2_1 = float2(0.78,-0.5) + _LocationOffset.zw;
 
- 				//float2 offset_pos_Layer2_2 = float2(0.2,0.9) + _LocationOffset.zw;
 
- 				//float2 offset_pos_Layer2_3 = float2(-0.5,0.14) + _LocationOffset.zw;
 
- 				//float2 sampling_pos_Layer2_1 = float2(uv.xy + offset_pos_Layer2_1) * _TilingLayer2;
 
- 				//float2 sampling_pos_Layer2_2 = float2(uv.xy + offset_pos_Layer2_2) * _TilingLayer2;
 
- 				//float2 sampling_pos_Layer2_3 = float2(uv.xy + offset_pos_Layer2_3) * _TilingLayer2;
 
- 				//Perlin Noises
 
- 				//float perlin_Layer2_1 = saturate(CalculatePerlinTileing(sampling_pos_Layer2_1.xy,float2(_TilingLayer2, _TilingLayer2)));
 
- 				//float perlin_Layer2_2 = saturate(CalculatePerlinTileing(sampling_pos_Layer2_2.xy,float2(_TilingLayer2, _TilingLayer2)));
 
- 				//float perlin_Layer2_3 = saturate(CalculatePerlinTileing(sampling_pos_Layer2_3.xy,float2(_TilingLayer2, _TilingLayer2)));
 
- 			
 
- 				//Worley Noise
 
- 				float worley1Layer2 = worley2(windOffsetLayer1 + _LocationOffset.zw + uv.xy * _WorleyFreq1Layer2, 1);
 
- 				float worley2Layer2 = worley2(windOffsetLayer1 + _LocationOffset.zw + uv.xy * _WorleyFreq2Layer2, 1);
 
- 				//float perlin_Layer2_Combined = saturate(perlin_Layer2_1 + (perlin_Layer2_2 - perlin_Layer2_3) + worleyLayer2);
 
- 				float dilateCoverageLayer2 = dilate_perlin_worley(worley1Layer2,worley2Layer2,_DilateCoverageLayer2); 
 
- 				
 
- 				//Coverage Layer
 
- 				//float covFiller = worleyFbm2DFiller(uv.xy * 4, 4) * 1.2;
 
- 				float coverageLayer2 = saturate(dilateCoverageLayer2 + (covFiller * _CoverageLayer2));
 
- 			
 
- 				float dilateTypeLayer2 = dilate_perlin_worley(worley1Layer2,worley2Layer2,_DilateTypeLayer2);
 
- 				float typeLayer2 = saturate(dilateTypeLayer2 * _CloudsTypeModifierLayer2);
 
- 				///Layer 2 End
 
- 				return float4(coverageLayer1,typeLayer1,coverageLayer2,typeLayer2);
 
- #else
 
- 				return float4(coverageLayer1,typeLayer1,0.0f,0.0f);
 
- #endif
 
- 			}
 
- 		ENDCG
 
- 		}
 
- 	}
 
- 	FallBack "Diffuse"
 
- }
 
 
  |