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 + /sim/rendering/snow-level-m @@ -98,6 +99,11 @@ sampler-1d 2 + + snowlevel + float + snow-level + 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 + /sim/rendering/snow-level-m @@ -98,6 +99,11 @@ sampler-1d 2 + + snowlevel + float + snow-level + 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