diff --git a/Effects/crop.eff b/Effects/crop.eff
index cebf09761..2c616ff06 100644
--- a/Effects/crop.eff
+++ b/Effects/crop.eff
@@ -16,6 +16,7 @@
mirror
normalized
+
@@ -98,6 +99,11 @@
sampler-1d
2
+
+ snowlevel
+ float
+
+
diff --git a/Effects/cropgrass.eff b/Effects/cropgrass.eff
index 1cc7263cf..72d1b554c 100644
--- a/Effects/cropgrass.eff
+++ b/Effects/cropgrass.eff
@@ -16,6 +16,7 @@
mirror
normalized
+
@@ -98,6 +99,11 @@
sampler-1d
2
+
+ snowlevel
+ float
+
+
diff --git a/Shaders/crop.frag b/Shaders/crop.frag
index d9d50f3e5..555e673a2 100644
--- a/Shaders/crop.frag
+++ b/Shaders/crop.frag
@@ -4,25 +4,20 @@ varying vec4 rawpos;
varying vec4 ecPosition;
varying vec3 VNormal;
varying vec3 Normal;
-varying vec4 constantColor;
uniform sampler3D NoiseTex;
uniform sampler2D SampleTex;
uniform sampler1D ColorsTex;
-const float scale = 1.0;
+uniform float snowlevel; // From /sim/rendering/snow-level-m
-const vec4 red = vec4(1.0, 0.0, 0.0, 1.0);
-const vec4 green = vec4(0.0, 1.0, 0.0, 1.0);
-const vec4 blue = vec4(0.0, 0.0, 1.0, 1.0);
-const vec4 yellow = vec4(1.0, 1.0, 0.0, 1.0);
+const float scale = 1.0;
#define BLA 1
#define BLA2 0
void main (void)
{
- const float snowlevel=2000.0;
vec4 basecolor = texture2D(SampleTex, rawpos.xy*0.000144);
basecolor = texture1D(ColorsTex, basecolor.r+0.00);
@@ -54,13 +49,15 @@ void main (void)
// good
vec4 c1;
c1 = basecolor * vec4(smoothstep(0.0, 1.15, n), smoothstep(0.0, 1.2, n), smoothstep(0.1, 1.3, n), 1.0);
+
//"steep = gray"
c1 = mix(vec4(n-0.42, n-0.44, n-0.51, 1.0), c1, smoothstep(0.970, 0.990, abs(normalize(Normal).z)+nvL[2]*1.3));
+
//"snow"
c1 = mix(c1, clamp(n+nvL[2]*4.1+vec4(0.1, 0.1, nvL[2]*2.2, 1.0), 0.7, 1.0), smoothstep(snowlevel+300.0, snowlevel+360.0, (rawpos.z)+nvL[1]*3000.0));
vec3 diffuse = gl_Color.rgb * max(0.0, dot(VNormal, gl_LightSource[0].position.xyz));
- vec4 ambient_light = constantColor + gl_LightSource[0].diffuse * vec4(diffuse, 1.0);
+ vec4 ambient_light = gl_LightSource[0].diffuse * vec4(diffuse, 1.0);
c1 *= ambient_light;
vec4 finalColor = c1;
diff --git a/Shaders/crop.vert b/Shaders/crop.vert
index 50bdc1f85..b5c7314a5 100644
--- a/Shaders/crop.vert
+++ b/Shaders/crop.vert
@@ -1,23 +1,19 @@
#version 120
-varying vec4 rawpos;
-varying vec4 ecPosition;
-varying vec3 VNormal;
-varying vec3 Normal;
-varying vec4 constantColor;
-centroid varying vec4 ipos;
+varying vec4 rawpos;
+varying vec4 ecPosition;
+varying vec3 VNormal;
+varying vec3 Normal;
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
- rawpos = gl_Vertex;
- ipos = gl_Vertex;
+ rawpos = gl_Vertex;
ecPosition = gl_ModelViewMatrix * gl_Vertex;
VNormal = normalize(gl_NormalMatrix * gl_Normal);
Normal = normalize(gl_Normal);
- gl_FrontColor = gl_Color;
- constantColor = gl_FrontMaterial.emission
- + gl_Color * (gl_LightModel.ambient + gl_LightSource[0].ambient);
+
+ gl_FrontColor = gl_Color;
gl_Position = ftransform();
-}
+}
\ No newline at end of file