Changes for better terrain, but not so good forest
This commit is contained in:
parent
d135816375
commit
5fb6550b8e
4 changed files with 15 additions and 16 deletions
|
@ -4,7 +4,7 @@
|
||||||
<inherits-from>Effects/terrain-default</inherits-from>
|
<inherits-from>Effects/terrain-default</inherits-from>
|
||||||
<parameters>
|
<parameters>
|
||||||
<texture n="2">
|
<texture n="2">
|
||||||
<image>Textures/Terrain/forest.png</image>
|
<image>Textures/Terrain/rock.png</image>
|
||||||
<filter>linear-mipmap-linear</filter>
|
<filter>linear-mipmap-linear</filter>
|
||||||
<wrap-s>repeat</wrap-s>
|
<wrap-s>repeat</wrap-s>
|
||||||
<wrap-t>repeat</wrap-t>
|
<wrap-t>repeat</wrap-t>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<inherits-from>Effects/terrain-default</inherits-from>
|
<inherits-from>Effects/terrain-default</inherits-from>
|
||||||
<parameters>
|
<parameters>
|
||||||
<texture n="2">
|
<texture n="2">
|
||||||
<image>Textures/Terrain/forest.png</image>
|
<image>Textures/Terrain/rock.png</image>
|
||||||
<filter>linear-mipmap-linear</filter>
|
<filter>linear-mipmap-linear</filter>
|
||||||
<wrap-s>repeat</wrap-s>
|
<wrap-s>repeat</wrap-s>
|
||||||
<wrap-t>repeat</wrap-t>
|
<wrap-t>repeat</wrap-t>
|
||||||
|
|
|
@ -11,13 +11,13 @@
|
||||||
<internal-format>normalized</internal-format>
|
<internal-format>normalized</internal-format>
|
||||||
</texture>
|
</texture>
|
||||||
<texture n="3">
|
<texture n="3">
|
||||||
<image>Textures/Terrain/rock-colors.png</image>
|
<image>Textures/Terrain/forest-colors.png</image>
|
||||||
<filter>linear-mipmap-linear</filter>
|
<filter>linear-mipmap-linear</filter>
|
||||||
<wrap-s>mirror</wrap-s>
|
<wrap-s>mirror</wrap-s>
|
||||||
<internal-format>normalized</internal-format>
|
<internal-format>normalized</internal-format>
|
||||||
</texture>
|
</texture>
|
||||||
<texture n="4">
|
<texture n="4">
|
||||||
<image>Textures/Terrain/rock.png</image>
|
<image>Textures/Terrain/forest.png</image>
|
||||||
<filter>linear-mipmap-linear</filter>
|
<filter>linear-mipmap-linear</filter>
|
||||||
<wrap-s>repeat</wrap-s>
|
<wrap-s>repeat</wrap-s>
|
||||||
<wrap-t>repeat</wrap-t>
|
<wrap-t>repeat</wrap-t>
|
||||||
|
|
|
@ -102,7 +102,7 @@ void main (void)
|
||||||
fogFactor = exp2(-gl_Fog.density * gl_Fog.density * fogCoord * fogCoord * LOG2);
|
fogFactor = exp2(-gl_Fog.density * gl_Fog.density * fogCoord * fogCoord * LOG2);
|
||||||
float biasFactor = exp2(-0.00000002 * fogCoord * fogCoord * LOG2);
|
float biasFactor = exp2(-0.00000002 * fogCoord * fogCoord * LOG2);
|
||||||
|
|
||||||
float n=0.12;
|
float n=0.02;
|
||||||
n += nvL[0]*0.4;
|
n += nvL[0]*0.4;
|
||||||
n += nvL[1]*0.6;
|
n += nvL[1]*0.6;
|
||||||
n += nvL[2]*2.0;
|
n += nvL[2]*2.0;
|
||||||
|
@ -123,7 +123,6 @@ void main (void)
|
||||||
N = normalize(N.x * VTangent + N.y * VBinormal + N.z * VNormal);
|
N = normalize(N.x * VTangent + N.y * VBinormal + N.z * VNormal);
|
||||||
vec3 l = gl_LightSource[0].position.xyz;
|
vec3 l = gl_LightSource[0].position.xyz;
|
||||||
vec3 diffuse;
|
vec3 diffuse;
|
||||||
//vec3 diffuse = gl_Color.rgb * max(0.6, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
|
||||||
|
|
||||||
//draw floor where !steep, and another blurb for smoothing transitions
|
//draw floor where !steep, and another blurb for smoothing transitions
|
||||||
vec4 c3, c4, c5;
|
vec4 c3, c4, c5;
|
||||||
|
@ -134,27 +133,27 @@ void main (void)
|
||||||
|
|
||||||
if (vegetationlevel <= 2200) {
|
if (vegetationlevel <= 2200) {
|
||||||
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.4));
|
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.4));
|
||||||
diffuse = gl_Color.rgb * max(0.3, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
diffuse = gl_Color.rgb * max(0.7, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vegetationlevel > 2200 && vegetationlevel < 2300) {
|
if (vegetationlevel > 2200 && vegetationlevel < 2300) {
|
||||||
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.2));
|
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.4));
|
||||||
diffuse = gl_Color.rgb * max(0.6, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
diffuse = gl_Color.rgb * max(0.7, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vegetationlevel >= 2300 && vegetationlevel < 2530) {
|
if (vegetationlevel >= 2300 && vegetationlevel < 2530) {
|
||||||
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.4));
|
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.4));
|
||||||
diffuse = gl_Color.rgb * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
diffuse = gl_Color.rgb * max(0.85, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vegetationlevel >= 2530 && vegetationlevel < 2670) {
|
if (vegetationlevel >= 2530 && vegetationlevel < 2670) {
|
||||||
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.1));
|
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.4));
|
||||||
diffuse = gl_Color.rgb * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
diffuse = gl_Color.rgb * max(0.85, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vegetationlevel >= 2670) {
|
if (vegetationlevel >= 2670) {
|
||||||
c1 = mix(c2, c5, clamp(0.65, n*0.5, 0.1));
|
c1 = mix(c2, c5, clamp(0.0, n*0.1, 0.4));
|
||||||
diffuse = gl_Color.rgb * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
diffuse = gl_Color.rgb * max(0.85, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,8 +162,8 @@ void main (void)
|
||||||
c3 = mix(vec4(n+1.0, n+1.0, n+1.0, 0.0), c1, smoothstep(0.990, 0.965, abs(normalize(Normal).z)+nvL[2]*1.3));
|
c3 = mix(vec4(n+1.0, n+1.0, n+1.0, 0.0), c1, smoothstep(0.990, 0.965, abs(normalize(Normal).z)+nvL[2]*1.3));
|
||||||
c4 = mix(vec4(n+1.0, n+1.0, n+1.0, 0.0), c1, smoothstep(0.990, 0.965, abs(normalize(Normal).z)+nvL[2]*0.9));
|
c4 = mix(vec4(n+1.0, n+1.0, n+1.0, 0.0), c1, smoothstep(0.990, 0.965, abs(normalize(Normal).z)+nvL[2]*0.9));
|
||||||
c5 = mix(c3, c4, 1.0);
|
c5 = mix(c3, c4, 1.0);
|
||||||
c1 = mix(c1, c5, clamp(0.65, -n, 0.6));
|
c1 = mix(c1, c5, clamp(0.65, n*0.5, 0.6));
|
||||||
diffuse = gl_Color.rgb * max(0.3, dot(VNormal, gl_LightSource[0].position.xyz));
|
diffuse = gl_Color.rgb * max(0.8, dot(N, l)) * max(0.9, dot(VNormal, gl_LightSource[0].position.xyz));
|
||||||
}
|
}
|
||||||
|
|
||||||
//should come as varying!
|
//should come as varying!
|
||||||
|
|
Loading…
Reference in a new issue