diff --git a/Effects/airfield.eff b/Effects/airfield.eff
index 0ac448798..dcd97a403 100644
--- a/Effects/airfield.eff
+++ b/Effects/airfield.eff
@@ -220,6 +220,11 @@
float
+
+ season
+ float
+
+
view_pitch_offset
float
diff --git a/Shaders/airfield-ALS.frag b/Shaders/airfield-ALS.frag
index 9928696ac..7e6f10b44 100644
--- a/Shaders/airfield-ALS.frag
+++ b/Shaders/airfield-ALS.frag
@@ -34,6 +34,7 @@ uniform float overlay_bias;
uniform float overlay_alpha;
uniform float wetness;
uniform float air_pollution;
+uniform float season;
uniform float landing_light1_offset;
uniform float landing_light2_offset;
@@ -155,6 +156,7 @@ float noise_2000m = Noise2D(rawPos.xy, 2000.0);
// get the texels
texel = texture2D(texture, gl_TexCoord[0].st * 5.0);
+ float local_autumn_factor = texel.a;
float distortion_factor = 1.0;
float noise_term;
@@ -212,6 +214,22 @@ if ((dist < 3000.0)&& (quality_level > 3) && (wetness>0.0))
texel.r = texel.r * (1.0 + 0.14 * smoothstep(0.5,0.7, 0.33*(2.0 * noise_10m + (1.0-noise_5m))));
+// autumn colors
+
+float autumn_factor = season * 2.0 * (1.0 - local_autumn_factor) ;
+
+
+texel.r = min(1.0, (1.0 + 2.5 * autumn_factor) * texel.r);
+texel.g = texel.g;
+texel.b = max(0.0, (1.0 - 4.0 * autumn_factor) * texel.b);
+
+
+if (local_autumn_factor < 1.0)
+ {
+ intensity = length(texel.rgb) * (1.0 - 0.5 * smoothstep(1.1,2.0,season));
+ texel.rgb = intensity * normalize(mix(texel.rgb, vec3(0.23,0.17,0.08), smoothstep(1.1,2.0, season)));
+ }
+
vec4 dust_color;
if (quality_level > 3)
diff --git a/Textures/Terrain/airport_grass2.png b/Textures/Terrain/airport_grass2.png
index a909fb340..6eb443cf2 100644
Binary files a/Textures/Terrain/airport_grass2.png and b/Textures/Terrain/airport_grass2.png differ
diff --git a/Textures/Trees/grass_blades.png b/Textures/Trees/grass_blades.png
new file mode 100644
index 000000000..3610f1b19
Binary files /dev/null and b/Textures/Trees/grass_blades.png differ