1
0
Fork 0

Some fixes for the ALS overlay shader

This commit is contained in:
Thorsten Renk 2017-09-18 12:47:21 +03:00
parent 1c00d1d7d6
commit a7e2ffc869
4 changed files with 26 additions and 10 deletions

View file

@ -151,6 +151,7 @@
</texture-unit>
<program>
<vertex-shader>Shaders/terrain-ALS-ultra.vert</vertex-shader>
<vertex-shader>Shaders/filters-ALS.vert</vertex-shader>
<fragment-shader>Shaders/terrain-ALS-ultra.frag</fragment-shader>
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/cloud-shadowfunc.frag</fragment-shader>
@ -714,9 +715,9 @@
<vertex-shader>Shaders/grass-ALS.vert</vertex-shader>
<geometry-shader>Shaders/terrain-overlay-ALS.geom</geometry-shader>
<fragment-shader>Shaders/terrain-overlay-ALS.frag</fragment-shader>
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/cloud-shadowfunc.frag</fragment-shader>
<geometry-vertices-out type="int">96</geometry-vertices-out>
<geometry-input-type>triangles</geometry-input-type>
<geometry-output-type>triangle-strip</geometry-output-type>

View file

@ -40,6 +40,9 @@ uniform float cloudpos19_y;
uniform float cloudpos20_x;
uniform float cloudpos20_y;
uniform float cloudpos_n_x;
uniform float cloudpos_n_y;
float shadow_func (in float x, in float y, in float noise, in float dist)
{
@ -135,3 +138,19 @@ shadeValue = shadeValue * (1.0 - smoothstep(15000.0, 30000.0,dist));
return 1.0 - shadeValue;
}
float shadow_func_nearest (in float x, in float y, in float noise, in float dist)
{
if (dist > 6000.0) {return 1.0;}
float width = fract((cloudpos_n_x)) * 5000.0;
float strength = fract((cloudpos_n_y));
float dlength = length( vec2 (x - cloudpos_n_x, y - cloudpos_n_y));
float shadeValue = strength * (1.0-smoothstep(width * 0.5, width, dlength));
return 1.0 - shadeValue;
}

View file

@ -36,10 +36,8 @@ uniform float osg_SimulationTime;
varying vec2 g_rawpos; // Horizontal position in model space
varying float g_distance_to_eye; // Distance to the camera. Layers were disregarded
varying vec3 g_normal;
varying in float g_altitude;
flat in float g_layer; // The layer where the fragment lives (0-1 range)
varying float g_altitude;
varying float g_layer; // The layer where the fragment lives (0-1 range)
float rand2D(in vec2 co);

View file

@ -14,9 +14,7 @@ varying out vec2 g_rawpos;
varying out float g_distance_to_eye;
varying out vec3 g_normal;
varying out float g_altitude;
flat varying out float g_layer;
varying out float g_layer;