1
0
Fork 0

Adding season colour in forest/herbtundra/glacier effects

This commit is contained in:
gral@who.net 2010-08-28 00:13:52 +02:00
parent 9dc13921cd
commit 269a999c4d
4 changed files with 91 additions and 7 deletions

View file

@ -34,6 +34,13 @@
<depth-factor type="float">0.04</depth-factor>
<canopy-height type="float">15.0</canopy-height>
<quality-level><use>/sim/rendering/quality-level</use></quality-level>
<!-- sets the season color -->
<season-red type="float">0.12</season-red>
<season-green type="float">0.86</season-green>
<season-blue type="float">0.0</season-blue>
<!-- end season color -->
</parameters>
<generate>
<tangent type="int">6</tangent>
@ -173,6 +180,26 @@
<type>float</type>
<value><use>quality-level</use></value>
</uniform>
<uniform>
<name>red</name>
<type>float</type>
<value><use>season-red</use></value>
</uniform>
<uniform>
<name>green</name>
<type>float</type>
<value><use>season-green</use></value>
</uniform>
<uniform>
<name>blue</name>
<type>float</type>
<value><use>season-blue</use></value>
</uniform>
<uniform>
<name>alpha</name>
<type>float</type>
<value>0.0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -34,6 +34,13 @@
<depth-factor type="float">0.01</depth-factor>
<canopy-height type="float">15.0</canopy-height>
<quality-level><use>/sim/rendering/quality-level</use></quality-level>
<!-- sets the season color -->
<season-red type="float">0.12</season-red>
<season-green type="float">0.86</season-green>
<season-blue type="float">0.0</season-blue>
<!-- end season color -->
</parameters>
<generate>
<tangent type="int">6</tangent>
@ -173,6 +180,26 @@
<type>float</type>
<value><use>quality-level</use></value>
</uniform>
<uniform>
<name>red</name>
<type>float</type>
<value><use>season-red</use></value>
</uniform>
<uniform>
<name>green</name>
<type>float</type>
<value><use>season-green</use></value>
</uniform>
<uniform>
<name>blue</name>
<type>float</type>
<value><use>season-blue</use></value>
</uniform>
<uniform>
<name>alpha</name>
<type>float</type>
<value>0.0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -33,6 +33,13 @@
<snow-level><use>/sim/rendering/snow-level-m</use></snow-level>
<depth-factor type="float">0.01</depth-factor>
<canopy-height type="float">15.0</canopy-height>
<!-- sets the season color -->
<season-red type="float">0.12</season-red>
<season-green type="float">0.86</season-green>
<season-blue type="float">0.0</season-blue>
<!-- end season color -->
<quality-level><use>/sim/rendering/quality-level</use></quality-level>
</parameters>
<generate>
@ -173,6 +180,26 @@
<type>float</type>
<value><use>quality-level</use></value>
</uniform>
<uniform>
<name>red</name>
<type>float</type>
<value><use>season-red</use></value>
</uniform>
<uniform>
<name>green</name>
<type>float</type>
<value><use>season-green</use></value>
</uniform>
<uniform>
<name>blue</name>
<type>float</type>
<value><use>season-blue</use></value>
</uniform>
<uniform>
<name>alpha</name>
<type>float</type>
<value>0.0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -15,6 +15,8 @@ uniform sampler2D SampleTex2;
uniform sampler2D NormalTex;
uniform float depth_factor;
uniform float red, green, blue, alpha;
uniform float quality_level; // From /sim/rendering/quality-level
uniform float snowlevel; // From /sim/rendering/snow-level-m
@ -102,7 +104,7 @@ void main (void)
fogFactor = exp2(-gl_Fog.density * gl_Fog.density * fogCoord * fogCoord * LOG2);
float biasFactor = exp2(-0.00000002 * fogCoord * fogCoord * LOG2);
float n=0.02;
float n=0.06;
n += nvL[0]*0.4;
n += nvL[1]*0.6;
n += nvL[2]*2.0;
@ -126,9 +128,10 @@ void main (void)
//draw floor where !steep, and another blurb for smoothing transitions
vec4 c3, c4, c5, c3a, c4a, c5a;
c3 = mix(vec4(n-0.88, n-0.14, -n, 0.0), c1, smoothstep(0.990, 0.970, abs(normalize(Normal).z)+nvL[2]*1.3));
c4 = mix(vec4(n-0.88, n-0.74, -n, 0.0), c1, smoothstep(0.990, 0.890, abs(normalize(Normal).z)+nvL[2]*0.9));
c4a = mix(vec4(n-0.76, n-0.66, -n, 0.3), c1, smoothstep(0.990, 0.970, abs(normalize(Normal).z)+nvL[2]*1.32));
float subred = 1.0 - red; float subgreen = 1.0 - green; float subblue = 1.0 - blue;
c3 = mix(vec4(n-subred, n-subgreen, -n, alpha), c1, smoothstep(0.990, 0.970, abs(normalize(Normal).z)+nvL[2]*1.3));
c4 = mix(vec4(n-subred, n-subgreen-0.6, -n, alpha), c1, smoothstep(0.990, 0.890, abs(normalize(Normal).z)+nvL[2]*0.9));
c4a = mix(vec4(n-subred+0.12, n-subgreen-0.52, -n, 0.0), c1, smoothstep(0.990, 0.970, abs(normalize(Normal).z)+nvL[2]*1.32));
c5 = mix(c3, c4, 1.0);
c5a = mix(c3, c4a, 1.0);
@ -173,10 +176,10 @@ void main (void)
diffuse = gl_Color.rgb * max(0.8, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
}
//should come as varying!
vec4 constantColor = vec4(1.0, 1.0, 1.0, 0.0);
vec4 ambient_light = gl_LightSource[0].diffuse * constantColor * vec4(diffuse, 1.0);
//vec4 constantColor = vec4(1.0, 1.0, 1.0, 0.0);
vec4 ambient_light = gl_LightSource[0].diffuse * vec4(diffuse, 0.0);
c1 *= ambient_light;
vec4 finalColor = c1;