From 4eba89603e01bdb5f17219580e96bf0ebfb33ba6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 26 Feb 2019 15:13:05 -0500 Subject: [PATCH] Shader tests --- .../items/item-spore-pod.png | Bin 2322 -> 2273 bytes core/assets/shaders/shadow.fragment | 37 +++++++++++------- core/assets/shaders/unitbuild.fragment | 6 +-- .../mindustry/ui/fragments/HudFragment.java | 2 +- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/core/assets-raw/sprites_replacement/items/item-spore-pod.png b/core/assets-raw/sprites_replacement/items/item-spore-pod.png index d1a80d0b2a7d6a5e340d7388afbedd38b2278570..32bcf69fed989a73565d437afd96b1e339e44e4b 100644 GIT binary patch delta 2148 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 LNkvXXu0mjfOTH~j diff --git a/core/assets/shaders/shadow.fragment b/core/assets/shaders/shadow.fragment index 2ab1ff8934..7346d78142 100644 --- a/core/assets/shaders/shadow.fragment +++ b/core/assets/shaders/shadow.fragment @@ -3,8 +3,7 @@ precision mediump float; precision mediump int; #endif -#define SPACE 0.75 -#define RADIUS 5.0 +#define SPACE 2.0 uniform sampler2D u_texture; @@ -21,15 +20,25 @@ void main() { vec4 c = texture2D(u_texture, v_texCoord.xy); float spacing = SPACE * u_scl; - if(c.a >= 0.001){ - gl_FragColor = c * v_color; - }else{ - for(float cx = -RADIUS; cx <= RADIUS; cx ++){ - for(float cy = -RADIUS; cy <= RADIUS; cy ++){ - if(cx*cx + cy*cy <= RADIUS * RADIUS && texture2D(u_texture, v_texCoord.xy + vec2(cx, cy) * v * spacing).a >= 0.001){ - gl_FragColor = u_color; - } - } - } - } -} + gl_FragColor = mix(vec4(0.0, 0.0, 0.0, min(c.a, u_color.a)), u_color, + (1.0-step(0.001, texture2D(u_texture, v_texCoord.xy).a)) * + step(0.001, + //cardinals + texture2D(u_texture, v_texCoord.xy + vec2(0, spacing) * v).a + + texture2D(u_texture, v_texCoord.xy + vec2(0, -spacing) * v).a + + texture2D(u_texture, v_texCoord.xy + vec2(spacing, 0) * v).a + + texture2D(u_texture, v_texCoord.xy + vec2(-spacing, 0) * v).a + + + //cardinal edges + texture2D(u_texture, v_texCoord.xy + vec2(spacing, spacing) * v).a + + texture2D(u_texture, v_texCoord.xy + vec2(spacing, -spacing) * v).a + + texture2D(u_texture, v_texCoord.xy + vec2(-spacing, spacing) * v).a + + texture2D(u_texture, v_texCoord.xy + vec2(-spacing, -spacing) * v).a + + + //cardinals * 2 + texture2D(u_texture, v_texCoord.xy + vec2(0, spacing) * v*2.0).a + + texture2D(u_texture, v_texCoord.xy + vec2(0, -spacing) * v*2.0).a + + texture2D(u_texture, v_texCoord.xy + vec2(spacing, 0) * v*2.0).a + + texture2D(u_texture, v_texCoord.xy + vec2(-spacing, 0) * v*2.0).a + )); +} \ No newline at end of file diff --git a/core/assets/shaders/unitbuild.fragment b/core/assets/shaders/unitbuild.fragment index 28aea691f8..1faf952c8d 100644 --- a/core/assets/shaders/unitbuild.fragment +++ b/core/assets/shaders/unitbuild.fragment @@ -3,8 +3,6 @@ precision mediump float; precision mediump int; #endif -#define step 3.0 - uniform sampler2D u_texture; uniform float u_time; @@ -17,8 +15,8 @@ uniform vec2 u_texsize; varying vec4 v_color; varying vec2 v_texCoord; -#define SPACE 0.75 -#define RADIUS 5.0 +#define SPACE 1.3 +#define RADIUS 2.0 bool cont(vec2 t, vec2 v){ diff --git a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java index a811f5aa7e..8937fcaceb 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java @@ -140,7 +140,7 @@ public class HudFragment extends Fragment{ infolabel.marginLeft(10f); IntFormat fps = new IntFormat("fps"); IntFormat ping = new IntFormat("ping"); - infolabel.label(() -> fps.get(Core.graphics.getFramesPerSecond())).padRight(10); + infolabel.label(() -> fps.get(Core.graphics.getFramesPerSecond())).padLeft(10).growX(); infolabel.row(); if(Net.hasClient()){ infolabel.label(() -> ping.get(Net.getPing())).visible(Net::client).colspan(2);