forked from Mirrorlandia_minetest/minetest
master #7
@ -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"};
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user