Shader Crop: Adding snow and snowlevel adjustement, clean up
This commit is contained in:
parent
07c6ffedc0
commit
1ee6d35136
3 changed files with 19 additions and 20 deletions
|
@ -16,6 +16,7 @@
|
||||||
<wrap-s>mirror</wrap-s>
|
<wrap-s>mirror</wrap-s>
|
||||||
<internal-format>normalized</internal-format>
|
<internal-format>normalized</internal-format>
|
||||||
</texture>
|
</texture>
|
||||||
|
<snow-level><use>/sim/rendering/snow-level-m</use></snow-level>
|
||||||
</parameters>
|
</parameters>
|
||||||
<technique n="9">
|
<technique n="9">
|
||||||
<predicate>
|
<predicate>
|
||||||
|
@ -98,6 +99,11 @@
|
||||||
<type>sampler-1d</type>
|
<type>sampler-1d</type>
|
||||||
<value type="int">2</value>
|
<value type="int">2</value>
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>snowlevel</name>
|
||||||
|
<type>float</type>
|
||||||
|
<value><use>snow-level</use></value>
|
||||||
|
</uniform>
|
||||||
</pass>
|
</pass>
|
||||||
</technique>
|
</technique>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -4,25 +4,20 @@ varying vec4 rawpos;
|
||||||
varying vec4 ecPosition;
|
varying vec4 ecPosition;
|
||||||
varying vec3 VNormal;
|
varying vec3 VNormal;
|
||||||
varying vec3 Normal;
|
varying vec3 Normal;
|
||||||
varying vec4 constantColor;
|
|
||||||
|
|
||||||
uniform sampler3D NoiseTex;
|
uniform sampler3D NoiseTex;
|
||||||
uniform sampler2D SampleTex;
|
uniform sampler2D SampleTex;
|
||||||
uniform sampler1D ColorsTex;
|
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 float scale = 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);
|
|
||||||
|
|
||||||
#define BLA 1
|
#define BLA 1
|
||||||
#define BLA2 0
|
#define BLA2 0
|
||||||
|
|
||||||
void main (void)
|
void main (void)
|
||||||
{
|
{
|
||||||
const float snowlevel=2000.0;
|
|
||||||
|
|
||||||
vec4 basecolor = texture2D(SampleTex, rawpos.xy*0.000144);
|
vec4 basecolor = texture2D(SampleTex, rawpos.xy*0.000144);
|
||||||
basecolor = texture1D(ColorsTex, basecolor.r+0.00);
|
basecolor = texture1D(ColorsTex, basecolor.r+0.00);
|
||||||
|
@ -54,13 +49,15 @@ void main (void)
|
||||||
// good
|
// good
|
||||||
vec4 c1;
|
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);
|
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"
|
//"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));
|
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"
|
//"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));
|
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));
|
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;
|
c1 *= ambient_light;
|
||||||
vec4 finalColor = c1;
|
vec4 finalColor = c1;
|
||||||
|
|
|
@ -1,23 +1,19 @@
|
||||||
#version 120
|
#version 120
|
||||||
|
|
||||||
varying vec4 rawpos;
|
varying vec4 rawpos;
|
||||||
varying vec4 ecPosition;
|
varying vec4 ecPosition;
|
||||||
varying vec3 VNormal;
|
varying vec3 VNormal;
|
||||||
varying vec3 Normal;
|
varying vec3 Normal;
|
||||||
varying vec4 constantColor;
|
|
||||||
centroid varying vec4 ipos;
|
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
rawpos = gl_Vertex;
|
rawpos = gl_Vertex;
|
||||||
ipos = gl_Vertex;
|
|
||||||
ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
||||||
VNormal = normalize(gl_NormalMatrix * gl_Normal);
|
VNormal = normalize(gl_NormalMatrix * gl_Normal);
|
||||||
Normal = normalize(gl_Normal);
|
Normal = normalize(gl_Normal);
|
||||||
gl_FrontColor = gl_Color;
|
|
||||||
constantColor = gl_FrontMaterial.emission
|
gl_FrontColor = gl_Color;
|
||||||
+ gl_Color * (gl_LightModel.ambient + gl_LightSource[0].ambient);
|
|
||||||
gl_Position = ftransform();
|
gl_Position = ftransform();
|
||||||
}
|
}
|
Loading…
Reference in a new issue