diff options
Diffstat (limited to 'client/map/progress.gdshader')
-rw-r--r-- | client/map/progress.gdshader | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/client/map/progress.gdshader b/client/map/progress.gdshader new file mode 100644 index 00000000..0bf3e04a --- /dev/null +++ b/client/map/progress.gdshader @@ -0,0 +1,28 @@ +shader_type spatial; + +uniform float progress = 0.; +uniform bool bad = false; + +void fragment() { + vec3 color = vec3(0., 1., 0.); + float alpha_fac = 1.; + if (bad) { + color = vec3(1., 0., 0.); + alpha_fac = sin(TIME * 15.) * .5 + 1.; + } + if (UV.x > progress) { + ALPHA = 0.1; + } + ALPHA *= alpha_fac; + ALBEDO = color; +} + +void vertex() { + mat4 modified_model_view = VIEW_MATRIX * mat4( + INV_VIEW_MATRIX[0], + INV_VIEW_MATRIX[1], + INV_VIEW_MATRIX[2], + MODEL_MATRIX[3] + ); + MODELVIEW_MATRIX = modified_model_view; +} |