From bf5b7938f4898486ac37dc38bae71ceb2398dd49 Mon Sep 17 00:00:00 2001 From: myconid Date: Mon, 17 Sep 2012 12:22:21 +0000 Subject: [PATCH] First attempt at adding waterfall splashes... This was SVN commit r12686. --- binaries/data/mods/public/art/meshes/test/waterfall.dae | 4 ++-- .../data/mods/public/shaders/effects/model_waterfall.xml | 2 +- binaries/data/mods/public/shaders/glsl/model_waterfall.fs | 7 ++++++- binaries/data/mods/public/shaders/glsl/model_waterfall.vs | 5 +++-- binaries/data/mods/public/shaders/glsl/model_waterfall.xml | 4 ++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/binaries/data/mods/public/art/meshes/test/waterfall.dae b/binaries/data/mods/public/art/meshes/test/waterfall.dae index 134f6d74f8..2273cf8fac 100644 --- a/binaries/data/mods/public/art/meshes/test/waterfall.dae +++ b/binaries/data/mods/public/art/meshes/test/waterfall.dae @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f229c312e9900c3229d27d1906f5048057b4e69de9024c28705bd61c9cad1971 -size 4057 +oid sha256:b347b1cce1355c6567cd4a9dc796abcd7c2ffd5d50126d25ebb876aee6848203 +size 6825 diff --git a/binaries/data/mods/public/shaders/effects/model_waterfall.xml b/binaries/data/mods/public/shaders/effects/model_waterfall.xml index b787321cd7..5043c3dbdc 100644 --- a/binaries/data/mods/public/shaders/effects/model_waterfall.xml +++ b/binaries/data/mods/public/shaders/effects/model_waterfall.xml @@ -9,7 +9,7 @@ - + diff --git a/binaries/data/mods/public/shaders/glsl/model_waterfall.fs b/binaries/data/mods/public/shaders/glsl/model_waterfall.fs index da499da599..499b8fe59e 100644 --- a/binaries/data/mods/public/shaders/glsl/model_waterfall.fs +++ b/binaries/data/mods/public/shaders/glsl/model_waterfall.fs @@ -31,7 +31,7 @@ varying vec4 v_shadow; varying vec2 v_los; varying vec3 v_half; varying vec3 v_normal; - +varying float v_transp; varying vec3 v_lighting; float get_shadow() @@ -66,6 +66,11 @@ void main() //vec4 texdiffuse = textureGrad(baseTex, vec3(fract(v_tex.xy), v_tex.z), dFdx(v_tex.xy), dFdy(v_tex.xy)); vec4 texdiffuse = texture2D(baseTex, fract(v_tex.xy)); + if (texdiffuse.a < 0.25) + discard; + + texdiffuse.a *= v_transp; + vec3 specular = sunColor * specularColor * pow(max(0.0, dot(normalize(v_normal), v_half)), specularPower); vec3 color = (texdiffuse.rgb * v_lighting + specular) * get_shadow(); diff --git a/binaries/data/mods/public/shaders/glsl/model_waterfall.vs b/binaries/data/mods/public/shaders/glsl/model_waterfall.vs index 04ae40c300..085db36acc 100644 --- a/binaries/data/mods/public/shaders/glsl/model_waterfall.vs +++ b/binaries/data/mods/public/shaders/glsl/model_waterfall.vs @@ -24,7 +24,7 @@ uniform vec2 translation; attribute vec3 a_vertex; attribute vec3 a_normal; attribute vec2 a_uv0; - +attribute vec2 a_uv1; varying vec4 worldPos; varying vec4 v_tex; @@ -32,7 +32,7 @@ varying vec4 v_shadow; varying vec2 v_los; varying vec3 v_half; varying vec3 v_normal; - +varying float v_transp; varying vec3 v_lighting; @@ -41,6 +41,7 @@ void main() worldPos = instancingTransform * vec4(a_vertex, 1.0); v_tex.xy = a_uv0 + sim_time * translation; + v_transp = a_uv1.x; #if USE_SHADOW v_shadow = shadowTransform * worldPos; diff --git a/binaries/data/mods/public/shaders/glsl/model_waterfall.xml b/binaries/data/mods/public/shaders/glsl/model_waterfall.xml index d7c6799689..d8f2665677 100644 --- a/binaries/data/mods/public/shaders/glsl/model_waterfall.xml +++ b/binaries/data/mods/public/shaders/glsl/model_waterfall.xml @@ -5,11 +5,11 @@ - + - +