Some fixes for the ALS overlay shader
This commit is contained in:
parent
1c00d1d7d6
commit
a7e2ffc869
4 changed files with 26 additions and 10 deletions
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue