diff --git a/assets/voxygen/shaders/figure-frag.glsl b/assets/voxygen/shaders/figure-frag.glsl index 0deb727bb0..7d3586ee5b 100644 --- a/assets/voxygen/shaders/figure-frag.glsl +++ b/assets/voxygen/shaders/figure-frag.glsl @@ -1,5 +1,7 @@ #version 330 core +#define FIGURE_SHADER + #include #define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION diff --git a/assets/voxygen/shaders/figure-vert.glsl b/assets/voxygen/shaders/figure-vert.glsl index c126f76095..021b319a11 100644 --- a/assets/voxygen/shaders/figure-vert.glsl +++ b/assets/voxygen/shaders/figure-vert.glsl @@ -2,6 +2,8 @@ #include +#define FIGURE_SHADER + #define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION #define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY diff --git a/assets/voxygen/shaders/include/light.glsl b/assets/voxygen/shaders/include/light.glsl index ba75b5db71..e4fdf92f73 100644 --- a/assets/voxygen/shaders/include/light.glsl +++ b/assets/voxygen/shaders/include/light.glsl @@ -183,7 +183,11 @@ float lights_at(vec3 wpos, vec3 wnorm, vec3 /*cam_to_frag*/view_dir, vec3 mu, ve vec3 direct_light = PI * color * strength * square_factor * light_reflection_factor(/*direct_norm_dir*/wnorm, /*cam_to_frag*/view_dir, direct_light_dir, k_d, k_s, alpha, voxel_norm, voxel_lighting); float computed_shadow = ShadowCalculationPoint(i, -difference, wnorm, wpos/*, light_distance*/); // directed_light += is_direct ? max(computed_shadow, /*LIGHT_AMBIANCE*/0.0) * direct_light * square_factor : vec3(0.0); - vec3 ambiance = color * 1.0 / distance_2; // Non-physical hack, but it's pretty subtle and *damn* does it make character shadows look better + #ifdef FIGURE_SHADER + vec3 ambiance = color * 0.5 / distance_2; // Non-physical hack, but it's pretty subtle and *damn* does it make shadows on characters look better + #else + vec3 ambiance = vec3(0.0); + #endif directed_light += (is_direct ? mix(LIGHT_AMBIANCE, 1.0, computed_shadow) * direct_light * square_factor : vec3(0.0)) + ambiance; // directed_light += (is_direct ? 1.0 : LIGHT_AMBIANCE) * max(computed_shadow, /*LIGHT_AMBIANCE*/0.0) * direct_light * square_factor;// : vec3(0.0); // directed_light += mix(LIGHT_AMBIANCE, 1.0, computed_shadow) * direct_light * square_factor; diff --git a/assets/voxygen/shaders/light-shadows-figure-vert.glsl b/assets/voxygen/shaders/light-shadows-figure-vert.glsl index 10adaed520..2178cae73e 100644 --- a/assets/voxygen/shaders/light-shadows-figure-vert.glsl +++ b/assets/voxygen/shaders/light-shadows-figure-vert.glsl @@ -1,6 +1,8 @@ #version 330 core // #extension ARB_texture_storage : enable +#define FIGURE_SHADER + #include #define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION diff --git a/assets/voxygen/shaders/player-shadow-frag.glsl b/assets/voxygen/shaders/player-shadow-frag.glsl index bb7da1b60d..d64be8f67e 100644 --- a/assets/voxygen/shaders/player-shadow-frag.glsl +++ b/assets/voxygen/shaders/player-shadow-frag.glsl @@ -1,5 +1,7 @@ #version 330 core +#define FIGURE_SHADER + #include #define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION diff --git a/voxygen/src/scene/terrain.rs b/voxygen/src/scene/terrain.rs index bd33ddd770..419bbed858 100644 --- a/voxygen/src/scene/terrain.rs +++ b/voxygen/src/scene/terrain.rs @@ -513,7 +513,7 @@ impl Terrain { (e as i32).div_euclid(sz as i32) }); - const AMBIANCE: f32 = 0.3; // 0-1, the proportion of light that should illuminate the rear of an object + const AMBIANCE: f32 = 0.15; // 0-1, the proportion of light that should illuminate the rear of an object let (bias, total, max) = Spiral2d::new() .take(9)