diff --git a/client/shaders/minimap_shader/opengl_fragment.glsl b/client/shaders/minimap_shader/opengl_fragment.glsl index d1b7291af..70deceee9 100644 --- a/client/shaders/minimap_shader/opengl_fragment.glsl +++ b/client/shaders/minimap_shader/opengl_fragment.glsl @@ -33,4 +33,4 @@ void main (void) vec4 col = vec4(color.rgb, base.a); col *= varColor; gl_FragColor = vec4(col.rgb, base.a); -} \ No newline at end of file +} diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index 1eea019d5..9027c5fa1 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -1,7 +1,4 @@ uniform sampler2D baseTexture; -uniform vec2 texelSize0; - -varying vec3 sunTint; uniform vec3 dayLight; uniform lowp vec4 fogColor; @@ -33,6 +30,7 @@ uniform float animationTimer; varying float f_normal_length; varying vec3 shadow_position; varying float perspective_factor; + varying vec3 sunTint; #endif varying vec3 vNormal; diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index 757d6a4f4..24f669829 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -58,7 +58,9 @@ uniform float xyPerspectiveBias0; uniform float xyPerspectiveBias1; uniform float zPerspectiveBias; -uniform vec3 beta_r0_l; +#ifdef ENABLE_TINTED_SUNLIGHT + uniform vec3 beta_r0_l; +#endif #ifdef ENABLE_DYNAMIC_SHADOWS diff --git a/src/client/game.cpp b/src/client/game.cpp index bd9e525fe..f907744c7 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -221,6 +221,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter }}; float m_user_exposure_compensation; bool m_bloom_enabled; + bool m_color_grading_enabled; CachedPixelShaderSetting m_bloom_intensity_pixel{"bloomIntensity"}; CachedPixelShaderSetting m_bloom_strength_pixel{"bloomStrength"}; CachedPixelShaderSetting m_bloom_radius_pixel{"bloomRadius"}; @@ -278,6 +279,7 @@ public: m_bloom_enabled = g_settings->getBool("enable_bloom"); m_volumetric_light_enabled = g_settings->getBool("enable_volumetric_lighting") && m_bloom_enabled; m_gamma = g_settings->getFloat("secondstage_gamma"); + m_color_grading_enabled = g_settings->getBool("enable_color_grading"); } ~GameGlobalShaderConstantSetter() @@ -368,14 +370,11 @@ public: m_foliage_translucency_pixel.set(&lighting.foliage_translucency, services); m_specular_intensity_pixel.set(&lighting.specular_intensity, services); - if (g_settings->getBool("enable_color_grading")) { + if (m_color_grading_enabled) { const ColorDecisionList& cdl_params = lighting.cdl; - core::vector3df slope = cdl_params.slope; - m_cdl_slope_pixel.set(slope, services); - core::vector3df offset = cdl_params.offset; - m_cdl_offset_pixel.set(offset, services); - core::vector3df power = cdl_params.power; - m_cdl_power_pixel.set(power, services); + m_cdl_slope_pixel.set(cdl_params.slope, services); + m_cdl_offset_pixel.set(cdl_params.offset, services); + m_cdl_power_pixel.set(cdl_params.power, services); } if (m_volumetric_light_enabled) { @@ -422,7 +421,7 @@ public: m_volumetric_light_strength_pixel.set(&volumetric_light_strength, services); } - core::vector3df beta_r0 = lighting.volumetric_beta_r0; + v3f beta_r0 = lighting.volumetric_beta_r0; m_volumetric_beta_r0_vertex.set(beta_r0, services); m_volumetric_beta_r0_pixel.set(beta_r0, services); } diff --git a/src/lighting.h b/src/lighting.h index 5f2436f70..aaf49983f 100644 --- a/src/lighting.h +++ b/src/lighting.h @@ -4,9 +4,7 @@ #pragma once #include "SColor.h" -#include "vector3d.h" - -using namespace irr; +#include "irr_v3d.h" /** * Parameters for automatic exposure compensation @@ -35,7 +33,7 @@ struct AutoExposure }; /** - * Parameters for vignette in post + * Parameters for vignette in post-processing * */ struct Vignette { @@ -56,9 +54,9 @@ struct Vignette { * */ struct ColorDecisionList { - core::vector3df slope{1.0, 1.0, 1.0}; - core::vector3df offset{0.0, 0.0, 0.0}; - core::vector3df power{1.0, 1.0, 1.0}; + v3f slope{1.0, 1.0, 1.0}; + v3f offset{0.0, 0.0, 0.0}; + v3f power{1.0, 1.0, 1.0}; }; /** Describes ambient light settings for a player @@ -75,7 +73,7 @@ struct Lighting float specular_intensity{1.5f}; // These factors are calculated based on expected value of scattering factor of 1e-5 // for Nitrogen at 532nm (green), 2e25 molecules/m3 in atmosphere - core::vector3df volumetric_beta_r0{ 3.3362176e-01, 8.75378289198826e-01, 1.95342379700656 }; + v3f volumetric_beta_r0{ 3.3362176e-01f, 8.753783e-01f, 1.9534237f }; video::SColor artificial_light_color{ 255, 133, 133, 133 }; video::SColor shadow_tint {255, 0, 0, 0}; float bloom_intensity {0.05f};