From bb9e593a44de452b65c49c9d4f61c8a4b12bd4c4 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Sat, 21 Nov 2020 16:56:08 +0000 Subject: [PATCH] Fixed glow AO --- assets/voxygen/shaders/figure-frag.glsl | 2 +- assets/voxygen/shaders/include/cloud/regular.glsl | 1 + assets/voxygen/shaders/include/sky.glsl | 2 +- assets/voxygen/shaders/sprite-frag.glsl | 2 +- voxygen/src/mesh/greedy.rs | 12 +++++++++++- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/assets/voxygen/shaders/figure-frag.glsl b/assets/voxygen/shaders/figure-frag.glsl index 646b2ab4ab..3b69a17d8b 100644 --- a/assets/voxygen/shaders/figure-frag.glsl +++ b/assets/voxygen/shaders/figure-frag.glsl @@ -181,7 +181,7 @@ void main() { float ao = f_ao * sqrt(f_ao);//0.25 + f_ao * 0.75; ///*pow(f_ao, 0.5)*/f_ao * 0.85 + 0.15; - vec3 glow = pow(model_light.y, 2) * GLOW_COLOR; + vec3 glow = pow(model_light.y, 3) * 4 * GLOW_COLOR; emitted_light += glow; reflected_light *= ao; diff --git a/assets/voxygen/shaders/include/cloud/regular.glsl b/assets/voxygen/shaders/include/cloud/regular.glsl index cf92c14180..077c278eec 100644 --- a/assets/voxygen/shaders/include/cloud/regular.glsl +++ b/assets/voxygen/shaders/include/cloud/regular.glsl @@ -90,6 +90,7 @@ vec4 cloud_at(vec3 pos, float dist, out vec3 emission) { // Prevent clouds and mist appearing underground (but fade them out gently) float not_underground = clamp(1.0 - (alt_at(pos.xy - focus_off.xy) - (pos.z - focus_off.z)) / 80.0, 0, 1); + air *= not_underground; float vapor_density = (mist + cloud) * not_underground; if (emission_strength <= 0.0) { diff --git a/assets/voxygen/shaders/include/sky.glsl b/assets/voxygen/shaders/include/sky.glsl index 496e1e400a..2c2d47bbf9 100644 --- a/assets/voxygen/shaders/include/sky.glsl +++ b/assets/voxygen/shaders/include/sky.glsl @@ -44,7 +44,7 @@ const float UNDERWATER_MIST_DIST = 100.0; const float PERSISTENT_AMBIANCE = 1.0 / 32.0;// 1.0 / 80; // 1.0 / 512; // 0.00125 // 0.1;// 0.025; // 0.1; -const vec3 GLOW_COLOR = vec3(1, 0.8, 0.5); +const vec3 GLOW_COLOR = vec3(1, 0.35, 0.05); //vec3 get_sun_dir(float time_of_day) { // const float TIME_FACTOR = (PI * 2.0) / (3600.0 * 24.0); diff --git a/assets/voxygen/shaders/sprite-frag.glsl b/assets/voxygen/shaders/sprite-frag.glsl index 66196e5d27..5295423998 100644 --- a/assets/voxygen/shaders/sprite-frag.glsl +++ b/assets/voxygen/shaders/sprite-frag.glsl @@ -174,7 +174,7 @@ void main() { reflected_light += point_light; */ // float ao = /*pow(f_ao, 0.5)*/f_ao * 0.85 + 0.15; - vec3 glow = pow(f_inst_light.y, 2) * GLOW_COLOR; + vec3 glow = pow(f_inst_light.y, 3) * 4 * GLOW_COLOR; emitted_light += glow; float ao = f_ao; diff --git a/voxygen/src/mesh/greedy.rs b/voxygen/src/mesh/greedy.rs index a3bb1d84e5..8bf586293c 100644 --- a/voxygen/src/mesh/greedy.rs +++ b/voxygen/src/mesh/greedy.rs @@ -586,9 +586,19 @@ fn draw_col_lights( 0.0 } ) / 4.0; + let glowiness = ( + get_glow(data, light_pos) + + get_glow(data, light_pos - uv.x) + + get_glow(data, light_pos - uv.y) + + if direct_u_opacity || direct_v_opacity { + get_glow(data, light_pos - uv.x - uv.y) + } else { + 0.0 + } + ) / 4.0; let col = get_color(data, pos); let light = (darkness * 31.5) as u8; - let glow = (get_glow(data, light_pos) * 31.5) as u8; + let glow = (glowiness * 31.5) as u8; *col_light = make_col_light(light, glow, col); }); });