master #7

Merged
BRNSystems merged 95 commits from Mirrorlandia_minetest/minetest:master into master 2024-01-28 00:16:42 +01:00
5 changed files with 82 additions and 136 deletions
Showing only changes of commit 345e93d19c - Show all commits

@ -47,10 +47,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class CAOShaderConstantSetter : public IShaderConstantSetter class CAOShaderConstantSetter : public IShaderConstantSetter
{ {
public: public:
CAOShaderConstantSetter():
m_emissive_color_setting("emissiveColor")
{}
~CAOShaderConstantSetter() override = default; ~CAOShaderConstantSetter() override = default;
void onSetConstants(video::IMaterialRendererServices *services) override void onSetConstants(video::IMaterialRendererServices *services) override
@ -74,7 +70,8 @@ public:
private: private:
video::SColor m_emissive_color; video::SColor m_emissive_color;
CachedPixelShaderSetting<float, 4> m_emissive_color_setting; CachedPixelShaderSetting<float, 4>
m_emissive_color_setting{"emissiveColor"};
}; };
class CAOShaderConstantSetterFactory : public IShaderConstantSetterFactory class CAOShaderConstantSetterFactory : public IShaderConstantSetterFactory

@ -373,43 +373,55 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
bool *m_force_fog_off; bool *m_force_fog_off;
f32 *m_fog_range; f32 *m_fog_range;
bool m_fog_enabled; bool m_fog_enabled;
CachedPixelShaderSetting<float, 4> m_sky_bg_color; CachedPixelShaderSetting<float, 4> m_sky_bg_color{"skyBgColor"};
CachedPixelShaderSetting<float> m_fog_distance; CachedPixelShaderSetting<float> m_fog_distance{"fogDistance"};
CachedPixelShaderSetting<float> m_fog_shading_parameter; CachedPixelShaderSetting<float>
CachedVertexShaderSetting<float> m_animation_timer_vertex; m_fog_shading_parameter{"fogShadingParameter"};
CachedPixelShaderSetting<float> m_animation_timer_pixel; CachedVertexShaderSetting<float> m_animation_timer_vertex{"animationTimer"};
CachedVertexShaderSetting<float> m_animation_timer_delta_vertex; CachedPixelShaderSetting<float> m_animation_timer_pixel{"animationTimer"};
CachedPixelShaderSetting<float> m_animation_timer_delta_pixel; CachedVertexShaderSetting<float>
CachedPixelShaderSetting<float, 3> m_day_light; m_animation_timer_delta_vertex{"animationTimerDelta"};
CachedPixelShaderSetting<float, 4> m_star_color; CachedPixelShaderSetting<float>
CachedPixelShaderSetting<float, 3> m_eye_position_pixel; m_animation_timer_delta_pixel{"animationTimerDelta"};
CachedVertexShaderSetting<float, 3> m_eye_position_vertex; CachedPixelShaderSetting<float, 3> m_day_light{"dayLight"};
CachedPixelShaderSetting<float, 3> m_minimap_yaw; CachedPixelShaderSetting<float, 4> m_star_color{"starColor"};
CachedPixelShaderSetting<float, 3> m_camera_offset_pixel; CachedPixelShaderSetting<float, 3> m_eye_position_pixel{"eyePosition"};
CachedPixelShaderSetting<float, 3> m_camera_offset_vertex; CachedVertexShaderSetting<float, 3> m_eye_position_vertex{"eyePosition"};
CachedPixelShaderSetting<SamplerLayer_t> m_texture0; CachedPixelShaderSetting<float, 3> m_minimap_yaw{"yawVec"};
CachedPixelShaderSetting<SamplerLayer_t> m_texture1; CachedPixelShaderSetting<float, 3> m_camera_offset_pixel{"cameraOffset"};
CachedPixelShaderSetting<SamplerLayer_t> m_texture2; CachedPixelShaderSetting<float, 3> m_camera_offset_vertex{"cameraOffset"};
CachedPixelShaderSetting<SamplerLayer_t> m_texture3; CachedPixelShaderSetting<SamplerLayer_t> m_texture0{"texture0"};
CachedVertexShaderSetting<float, 2> m_texel_size0_vertex; CachedPixelShaderSetting<SamplerLayer_t> m_texture1{"texture1"};
CachedPixelShaderSetting<float, 2> m_texel_size0_pixel; CachedPixelShaderSetting<SamplerLayer_t> m_texture2{"texture2"};
CachedPixelShaderSetting<SamplerLayer_t> m_texture3{"texture3"};
CachedVertexShaderSetting<float, 2> m_texel_size0_vertex{"texelSize0"};
CachedPixelShaderSetting<float, 2> m_texel_size0_pixel{"texelSize0"};
std::array<float, 2> m_texel_size0_values; std::array<float, 2> m_texel_size0_values;
CachedStructPixelShaderSetting<float, 7> m_exposure_params_pixel; CachedStructPixelShaderSetting<float, 7> m_exposure_params_pixel{
"exposureParams",
std::array<const char*, 7> {
"luminanceMin", "luminanceMax", "exposureCorrection",
"speedDarkBright", "speedBrightDark", "centerWeightPower",
"compensationFactor"
}};
float m_user_exposure_compensation; float m_user_exposure_compensation;
bool m_bloom_enabled; bool m_bloom_enabled;
CachedPixelShaderSetting<float> m_bloom_intensity_pixel; CachedPixelShaderSetting<float> m_bloom_intensity_pixel{"bloomIntensity"};
float m_bloom_intensity; float m_bloom_intensity;
CachedPixelShaderSetting<float> m_bloom_strength_pixel; CachedPixelShaderSetting<float> m_bloom_strength_pixel{"bloomStrength"};
float m_bloom_strength; float m_bloom_strength;
CachedPixelShaderSetting<float> m_bloom_radius_pixel; CachedPixelShaderSetting<float> m_bloom_radius_pixel{"bloomRadius"};
float m_bloom_radius; float m_bloom_radius;
CachedPixelShaderSetting<float> m_saturation_pixel; CachedPixelShaderSetting<float> m_saturation_pixel{"saturation"};
bool m_volumetric_light_enabled; bool m_volumetric_light_enabled;
CachedPixelShaderSetting<float, 3> m_sun_position_pixel; CachedPixelShaderSetting<float, 3>
CachedPixelShaderSetting<float> m_sun_brightness_pixel; m_sun_position_pixel{"sunPositionScreen"};
CachedPixelShaderSetting<float, 3> m_moon_position_pixel; CachedPixelShaderSetting<float> m_sun_brightness_pixel{"sunBrightness"};
CachedPixelShaderSetting<float> m_moon_brightness_pixel; CachedPixelShaderSetting<float, 3>
CachedPixelShaderSetting<float> m_volumetric_light_strength_pixel; m_moon_position_pixel{"moonPositionScreen"};
CachedPixelShaderSetting<float> m_moon_brightness_pixel{"moonBrightness"};
CachedPixelShaderSetting<float>
m_volumetric_light_strength_pixel{"volumetricLightStrength"};
public: public:
void onSettingsChange(const std::string &name) void onSettingsChange(const std::string &name)
@ -438,41 +450,7 @@ public:
m_sky(sky), m_sky(sky),
m_client(client), m_client(client),
m_force_fog_off(force_fog_off), m_force_fog_off(force_fog_off),
m_fog_range(fog_range), m_fog_range(fog_range)
m_sky_bg_color("skyBgColor"),
m_fog_distance("fogDistance"),
m_fog_shading_parameter("fogShadingParameter"),
m_animation_timer_vertex("animationTimer"),
m_animation_timer_pixel("animationTimer"),
m_animation_timer_delta_vertex("animationTimerDelta"),
m_animation_timer_delta_pixel("animationTimerDelta"),
m_day_light("dayLight"),
m_star_color("starColor"),
m_eye_position_pixel("eyePosition"),
m_eye_position_vertex("eyePosition"),
m_minimap_yaw("yawVec"),
m_camera_offset_pixel("cameraOffset"),
m_camera_offset_vertex("cameraOffset"),
m_texture0("texture0"),
m_texture1("texture1"),
m_texture2("texture2"),
m_texture3("texture3"),
m_texel_size0_vertex("texelSize0"),
m_texel_size0_pixel("texelSize0"),
m_exposure_params_pixel("exposureParams",
std::array<const char*, 7> {
"luminanceMin", "luminanceMax", "exposureCorrection",
"speedDarkBright", "speedBrightDark", "centerWeightPower", "compensationFactor"
}),
m_bloom_intensity_pixel("bloomIntensity"),
m_bloom_strength_pixel("bloomStrength"),
m_bloom_radius_pixel("bloomRadius"),
m_saturation_pixel("saturation"),
m_sun_position_pixel("sunPositionScreen"),
m_sun_brightness_pixel("sunBrightness"),
m_moon_position_pixel("moonPositionScreen"),
m_moon_brightness_pixel("moonBrightness"),
m_volumetric_light_strength_pixel("volumetricLightStrength")
{ {
g_settings->registerChangedCallback("enable_fog", settingsCallback, this); g_settings->registerChangedCallback("enable_fog", settingsCallback, this);
g_settings->registerChangedCallback("exposure_compensation", settingsCallback, this); g_settings->registerChangedCallback("exposure_compensation", settingsCallback, this);

@ -210,51 +210,36 @@ public:
class MainShaderConstantSetter : public IShaderConstantSetter class MainShaderConstantSetter : public IShaderConstantSetter
{ {
CachedVertexShaderSetting<f32, 16> m_world_view_proj; CachedVertexShaderSetting<f32, 16> m_world_view_proj{"mWorldViewProj"};
CachedVertexShaderSetting<f32, 16> m_world; CachedVertexShaderSetting<f32, 16> m_world{"mWorld"};
// Shadow-related // Shadow-related
CachedPixelShaderSetting<f32, 16> m_shadow_view_proj; CachedPixelShaderSetting<f32, 16> m_shadow_view_proj{"m_ShadowViewProj"};
CachedPixelShaderSetting<f32, 3> m_light_direction; CachedPixelShaderSetting<f32, 3> m_light_direction{"v_LightDirection"};
CachedPixelShaderSetting<f32> m_texture_res; CachedPixelShaderSetting<f32> m_texture_res{"f_textureresolution"};
CachedPixelShaderSetting<f32> m_shadow_strength; CachedPixelShaderSetting<f32> m_shadow_strength{"f_shadow_strength"};
CachedPixelShaderSetting<f32> m_time_of_day; CachedPixelShaderSetting<f32> m_time_of_day{"f_timeofday"};
CachedPixelShaderSetting<f32> m_shadowfar; CachedPixelShaderSetting<f32> m_shadowfar{"f_shadowfar"};
CachedPixelShaderSetting<f32, 4> m_camera_pos; CachedPixelShaderSetting<f32, 4> m_camera_pos{"CameraPos"};
CachedPixelShaderSetting<s32> m_shadow_texture; CachedPixelShaderSetting<s32> m_shadow_texture{"ShadowMapSampler"};
CachedVertexShaderSetting<f32> m_perspective_bias0_vertex; CachedVertexShaderSetting<f32>
CachedPixelShaderSetting<f32> m_perspective_bias0_pixel; m_perspective_bias0_vertex{"xyPerspectiveBias0"};
CachedVertexShaderSetting<f32> m_perspective_bias1_vertex; CachedPixelShaderSetting<f32>
CachedPixelShaderSetting<f32> m_perspective_bias1_pixel; m_perspective_bias0_pixel{"xyPerspectiveBias0"};
CachedVertexShaderSetting<f32> m_perspective_zbias_vertex; CachedVertexShaderSetting<f32>
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel; m_perspective_bias1_vertex{"xyPerspectiveBias1"};
CachedPixelShaderSetting<f32>
m_perspective_bias1_pixel{"xyPerspectiveBias1"};
CachedVertexShaderSetting<f32>
m_perspective_zbias_vertex{"zPerspectiveBias"};
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel{"zPerspectiveBias"};
// Modelview matrix // Modelview matrix
CachedVertexShaderSetting<float, 16> m_world_view; CachedVertexShaderSetting<float, 16> m_world_view{"mWorldView"};
// Texture matrix // Texture matrix
CachedVertexShaderSetting<float, 16> m_texture; CachedVertexShaderSetting<float, 16> m_texture{"mTexture"};
public: public:
MainShaderConstantSetter() :
m_world_view_proj("mWorldViewProj")
, m_world("mWorld")
, m_shadow_view_proj("m_ShadowViewProj")
, m_light_direction("v_LightDirection")
, m_texture_res("f_textureresolution")
, m_shadow_strength("f_shadow_strength")
, m_time_of_day("f_timeofday")
, m_shadowfar("f_shadowfar")
, m_camera_pos("CameraPos")
, m_shadow_texture("ShadowMapSampler")
, m_perspective_bias0_vertex("xyPerspectiveBias0")
, m_perspective_bias0_pixel("xyPerspectiveBias0")
, m_perspective_bias1_vertex("xyPerspectiveBias1")
, m_perspective_bias1_pixel("xyPerspectiveBias1")
, m_perspective_zbias_vertex("zPerspectiveBias")
, m_perspective_zbias_pixel("zPerspectiveBias")
, m_world_view("mWorldView")
, m_texture("mTexture")
{}
~MainShaderConstantSetter() = default; ~MainShaderConstantSetter() = default;
virtual void onSetConstants(video::IMaterialRendererServices *services) override virtual void onSetConstants(video::IMaterialRendererServices *services) override

@ -39,16 +39,12 @@ private:
class shadowScreenQuadCB : public video::IShaderConstantSetCallBack class shadowScreenQuadCB : public video::IShaderConstantSetCallBack
{ {
public: public:
shadowScreenQuadCB() :
m_sm_client_map_setting("ShadowMapClientMap"),
m_sm_client_map_trans_setting("ShadowMapClientMapTraslucent"),
m_sm_dynamic_sampler_setting("ShadowMapSamplerdynamic")
{}
virtual void OnSetConstants(video::IMaterialRendererServices *services, virtual void OnSetConstants(video::IMaterialRendererServices *services,
s32 userData); s32 userData);
private: private:
CachedPixelShaderSetting<s32> m_sm_client_map_setting; CachedPixelShaderSetting<s32> m_sm_client_map_setting{"ShadowMapClientMap"};
CachedPixelShaderSetting<s32> m_sm_client_map_trans_setting; CachedPixelShaderSetting<s32>
CachedPixelShaderSetting<s32> m_sm_dynamic_sampler_setting; m_sm_client_map_trans_setting{"ShadowMapClientMapTraslucent"};
CachedPixelShaderSetting<s32>
m_sm_dynamic_sampler_setting{"ShadowMapSamplerdynamic"};
}; };

@ -26,17 +26,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class ShadowDepthShaderCB : public video::IShaderConstantSetCallBack class ShadowDepthShaderCB : public video::IShaderConstantSetCallBack
{ {
public: public:
ShadowDepthShaderCB() :
m_light_mvp_setting("LightMVP"),
m_map_resolution_setting("MapResolution"),
m_max_far_setting("MaxFar"),
m_color_map_sampler_setting("ColorMapSampler"),
m_perspective_bias0("xyPerspectiveBias0"),
m_perspective_bias1("xyPerspectiveBias1"),
m_perspective_zbias("zPerspectiveBias"),
m_cam_pos_setting("CameraPos")
{}
void OnSetMaterial(const video::SMaterial &material) override {} void OnSetMaterial(const video::SMaterial &material) override {}
void OnSetConstants(video::IMaterialRendererServices *services, void OnSetConstants(video::IMaterialRendererServices *services,
@ -47,12 +36,13 @@ public:
v3f CameraPos; v3f CameraPos;
private: private:
CachedVertexShaderSetting<f32, 16> m_light_mvp_setting; CachedVertexShaderSetting<f32, 16> m_light_mvp_setting{"LightMVP"};
CachedVertexShaderSetting<f32> m_map_resolution_setting; CachedVertexShaderSetting<f32> m_map_resolution_setting{"MapResolution"};
CachedVertexShaderSetting<f32> m_max_far_setting; CachedVertexShaderSetting<f32> m_max_far_setting{"MaxFar"};
CachedPixelShaderSetting<s32> m_color_map_sampler_setting; CachedPixelShaderSetting<s32>
CachedVertexShaderSetting<f32> m_perspective_bias0; m_color_map_sampler_setting{"ColorMapSampler"};
CachedVertexShaderSetting<f32> m_perspective_bias1; CachedVertexShaderSetting<f32> m_perspective_bias0{"xyPerspectiveBias0"};
CachedVertexShaderSetting<f32> m_perspective_zbias; CachedVertexShaderSetting<f32> m_perspective_bias1{"xyPerspectiveBias1"};
CachedVertexShaderSetting<f32, 4> m_cam_pos_setting; CachedVertexShaderSetting<f32> m_perspective_zbias{"zPerspectiveBias"};
CachedVertexShaderSetting<f32, 4> m_cam_pos_setting{"CameraPos"};
}; };