From 364cc9b087cfdb0f3e6c791d6739f9997a83c89e Mon Sep 17 00:00:00 2001 From: Thorsten Renk Date: Thu, 24 Apr 2014 09:33:06 +0300 Subject: [PATCH] Cleanup in shader code --- Effects/terrain-default.eff | 29 +-------- Shaders/terrain-haze-detailed.frag | 94 +----------------------------- Shaders/terrain-haze-ultra.frag | 2 - Shaders/tree-haze.vert | 3 +- 4 files changed, 5 insertions(+), 123 deletions(-) diff --git a/Effects/terrain-default.eff b/Effects/terrain-default.eff index 4935b4dfb..d4dd77bb9 100644 --- a/Effects/terrain-default.eff +++ b/Effects/terrain-default.eff @@ -668,11 +668,6 @@ sampler-2d 5 - - snow_texture - sampler-2d - 6 - detail_texture sampler-2d @@ -789,10 +784,6 @@ texture[0]/wrap-t texture[0]/internal-format - - 1 - noise - 5 texture[12]/type @@ -802,15 +793,6 @@ texture[12]/wrap-t texture[12]/internal-format - - 6 - texture[10]/type - texture[10]/image - texture[10]/filter - texture[10]/wrap-s - texture[10]/wrap-t - texture[10]/internal-format - 7 texture[11]/type @@ -823,6 +805,7 @@ Shaders/terrain-haze-detailed.vert Shaders/terrain-haze-detailed.frag + Shaders/noise.frag visibility @@ -939,21 +922,11 @@ sampler-2d 0 - - NoiseTex - sampler-3d - 1 - mix_texture sampler-2d 5 - - snow_texture - sampler-2d - 6 - detail_texture sampler-2d diff --git a/Shaders/terrain-haze-detailed.frag b/Shaders/terrain-haze-detailed.frag index b8bd4d8d7..6f09a699b 100644 --- a/Shaders/terrain-haze-detailed.frag +++ b/Shaders/terrain-haze-detailed.frag @@ -11,8 +11,6 @@ varying vec3 worldPos; uniform sampler2D texture; -uniform sampler3D NoiseTex; -uniform sampler2D snow_texture; uniform sampler2D detail_texture; uniform sampler2D mix_texture; @@ -50,95 +48,8 @@ float eShade; float yprime_alt; float mie_angle; - - -float rand2D(in vec2 co){ - return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); -} - -float rand3D(in vec3 co){ - return fract(sin(dot(co.xyz ,vec3(12.9898,78.233,144.7272))) * 43758.5453); -} - -float cosine_interpolate(in float a, in float b, in float x) -{ - float ft = x * 3.1415927; - float f = (1.0 - cos(ft)) * .5; - - return a*(1.0-f) + b*f; -} - -float simple_interpolate(in float a, in float b, in float x) -{ -return a + smoothstep(0.0,1.0,x) * (b-a); -//return mix(a,b,x); -} - -float interpolatedNoise2D(in float x, in float y) -{ - float integer_x = x - fract(x); - float fractional_x = x - integer_x; - - float integer_y = y - fract(y); - float fractional_y = y - integer_y; - - float v1 = rand2D(vec2(integer_x, integer_y)); - float v2 = rand2D(vec2(integer_x+1.0, integer_y)); - float v3 = rand2D(vec2(integer_x, integer_y+1.0)); - float v4 = rand2D(vec2(integer_x+1.0, integer_y +1.0)); - - float i1 = simple_interpolate(v1 , v2 , fractional_x); - float i2 = simple_interpolate(v3 , v4 , fractional_x); - - return simple_interpolate(i1 , i2 , fractional_y); -} - - -float interpolatedNoise3D(in float x, in float y, in float z) -{ - float integer_x = x - fract(x); - float fractional_x = x - integer_x; - - float integer_y = y - fract(y); - float fractional_y = y - integer_y; - - float integer_z = z - fract(z); - float fractional_z = z - integer_z; - - float v1 = rand3D(vec3(integer_x, integer_y, integer_z)); - float v2 = rand3D(vec3(integer_x+1.0, integer_y, integer_z)); - float v3 = rand3D(vec3(integer_x, integer_y+1.0, integer_z)); - float v4 = rand3D(vec3(integer_x+1.0, integer_y +1.0, integer_z)); - - float v5 = rand3D(vec3(integer_x, integer_y, integer_z+1.0)); - float v6 = rand3D(vec3(integer_x+1.0, integer_y, integer_z+1.0)); - float v7 = rand3D(vec3(integer_x, integer_y+1.0, integer_z+1.0)); - float v8 = rand3D(vec3(integer_x+1.0, integer_y +1.0, integer_z+1.0)); - - - float i1 = simple_interpolate(v1,v5, fractional_z); - float i2 = simple_interpolate(v2,v6, fractional_z); - float i3 = simple_interpolate(v3,v7, fractional_z); - float i4 = simple_interpolate(v4,v8, fractional_z); - - float ii1 = simple_interpolate(i1,i2,fractional_x); - float ii2 = simple_interpolate(i3,i4,fractional_x); - - - return simple_interpolate(ii1 , ii2 , fractional_y); -} - - -float Noise2D(in vec2 coord, in float wavelength) -{ -return interpolatedNoise2D(coord.x/wavelength, coord.y/wavelength); - -} - -float Noise3D(in vec3 coord, in float wavelength) -{ -return interpolatedNoise3D(coord.x/wavelength, coord.y/wavelength, coord.z/wavelength); -} +float Noise2D(in vec2 coord, in float wavelength); +float Noise3D(in vec3 coord, in float wavelength); @@ -265,7 +176,6 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0); if ((quality_level > 3)&&(relPos.z + eye_alt +500.0 > snowlevel)) { - //snow_texel = texture2D(snow_texture, gl_TexCoord[0].st); float sfactor; snow_texel = vec4 (0.95, 0.95, 0.95, 1.0) * (0.9 + 0.1* noise_500m + 0.1* (1.0 - noise_10m) ); snow_texel.r = snow_texel.r * (0.9 + 0.05 * (noise_10m + noise_5m)); diff --git a/Shaders/terrain-haze-ultra.frag b/Shaders/terrain-haze-ultra.frag index 172e7a879..968292e11 100644 --- a/Shaders/terrain-haze-ultra.frag +++ b/Shaders/terrain-haze-ultra.frag @@ -12,8 +12,6 @@ varying vec3 ecViewdir; uniform sampler2D texture; -uniform sampler3D NoiseTex; -uniform sampler2D snow_texture; uniform sampler2D detail_texture; uniform sampler2D mix_texture; uniform sampler2D grain_texture; diff --git a/Shaders/tree-haze.vert b/Shaders/tree-haze.vert index 872e287dc..1c7e64f63 100644 --- a/Shaders/tree-haze.vert +++ b/Shaders/tree-haze.vert @@ -108,9 +108,10 @@ void main() } // Scale by random domains + float voronoi; if (forest_effects > 0) { - float voronoi = 0.5 + 1.0 * VoronoiNoise2D(gl_Color.xy, 200.0, 1.5, 1.5); + voronoi = 0.5 + 1.0 * VoronoiNoise2D(gl_Color.xy, 200.0, 1.5, 1.5); position.xyz = position.xyz * voronoi; }