Merge pull request #37432 from reduz/glow-bicubic-upscale-global
Move glow upscale quality to a global setting, for consistency
This commit is contained in:
commit
8f47ca8fe4
10 changed files with 36 additions and 39 deletions
|
@ -365,6 +365,9 @@ void EditorNode::_notification(int p_what) {
|
||||||
RS::get_singleton()->camera_effects_set_dof_blur_quality(dof_quality, dof_jitter);
|
RS::get_singleton()->camera_effects_set_dof_blur_quality(dof_quality, dof_jitter);
|
||||||
RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"));
|
RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"));
|
||||||
RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter"), GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter_curve"));
|
RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter"), GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter_curve"));
|
||||||
|
|
||||||
|
bool glow_bicubic = int(GLOBAL_GET("rendering/quality/glow/upscale_mode")) > 0;
|
||||||
|
RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic);
|
||||||
}
|
}
|
||||||
|
|
||||||
ResourceImporterTexture::get_singleton()->update_imports();
|
ResourceImporterTexture::get_singleton()->update_imports();
|
||||||
|
|
|
@ -546,7 +546,7 @@ float Environment::get_ssao_edge_sharpness() const {
|
||||||
void Environment::set_glow_enabled(bool p_enabled) {
|
void Environment::set_glow_enabled(bool p_enabled) {
|
||||||
|
|
||||||
glow_enabled = p_enabled;
|
glow_enabled = p_enabled;
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
_change_notify();
|
_change_notify();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -564,7 +564,7 @@ void Environment::set_glow_level(int p_level, bool p_enabled) {
|
||||||
else
|
else
|
||||||
glow_levels &= ~(1 << p_level);
|
glow_levels &= ~(1 << p_level);
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
bool Environment::is_glow_level_enabled(int p_level) const {
|
bool Environment::is_glow_level_enabled(int p_level) const {
|
||||||
|
|
||||||
|
@ -577,7 +577,7 @@ void Environment::set_glow_intensity(float p_intensity) {
|
||||||
|
|
||||||
glow_intensity = p_intensity;
|
glow_intensity = p_intensity;
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_intensity() const {
|
float Environment::get_glow_intensity() const {
|
||||||
|
|
||||||
|
@ -587,7 +587,7 @@ float Environment::get_glow_intensity() const {
|
||||||
void Environment::set_glow_strength(float p_strength) {
|
void Environment::set_glow_strength(float p_strength) {
|
||||||
|
|
||||||
glow_strength = p_strength;
|
glow_strength = p_strength;
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_strength() const {
|
float Environment::get_glow_strength() const {
|
||||||
|
|
||||||
|
@ -597,7 +597,7 @@ float Environment::get_glow_strength() const {
|
||||||
void Environment::set_glow_mix(float p_mix) {
|
void Environment::set_glow_mix(float p_mix) {
|
||||||
|
|
||||||
glow_mix = p_mix;
|
glow_mix = p_mix;
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_mix() const {
|
float Environment::get_glow_mix() const {
|
||||||
|
|
||||||
|
@ -608,7 +608,7 @@ void Environment::set_glow_bloom(float p_threshold) {
|
||||||
|
|
||||||
glow_bloom = p_threshold;
|
glow_bloom = p_threshold;
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_bloom() const {
|
float Environment::get_glow_bloom() const {
|
||||||
|
|
||||||
|
@ -619,7 +619,7 @@ void Environment::set_glow_blend_mode(GlowBlendMode p_mode) {
|
||||||
|
|
||||||
glow_blend_mode = p_mode;
|
glow_blend_mode = p_mode;
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
_change_notify();
|
_change_notify();
|
||||||
}
|
}
|
||||||
Environment::GlowBlendMode Environment::get_glow_blend_mode() const {
|
Environment::GlowBlendMode Environment::get_glow_blend_mode() const {
|
||||||
|
@ -631,7 +631,7 @@ void Environment::set_glow_hdr_bleed_threshold(float p_threshold) {
|
||||||
|
|
||||||
glow_hdr_bleed_threshold = p_threshold;
|
glow_hdr_bleed_threshold = p_threshold;
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_hdr_bleed_threshold() const {
|
float Environment::get_glow_hdr_bleed_threshold() const {
|
||||||
|
|
||||||
|
@ -642,7 +642,7 @@ void Environment::set_glow_hdr_luminance_cap(float p_amount) {
|
||||||
|
|
||||||
glow_hdr_luminance_cap = p_amount;
|
glow_hdr_luminance_cap = p_amount;
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_hdr_luminance_cap() const {
|
float Environment::get_glow_hdr_luminance_cap() const {
|
||||||
|
|
||||||
|
@ -653,24 +653,13 @@ void Environment::set_glow_hdr_bleed_scale(float p_scale) {
|
||||||
|
|
||||||
glow_hdr_bleed_scale = p_scale;
|
glow_hdr_bleed_scale = p_scale;
|
||||||
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap);
|
||||||
}
|
}
|
||||||
float Environment::get_glow_hdr_bleed_scale() const {
|
float Environment::get_glow_hdr_bleed_scale() const {
|
||||||
|
|
||||||
return glow_hdr_bleed_scale;
|
return glow_hdr_bleed_scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Environment::set_glow_bicubic_upscale(bool p_enable) {
|
|
||||||
|
|
||||||
glow_bicubic_upscale = p_enable;
|
|
||||||
RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Environment::is_glow_bicubic_upscale_enabled() const {
|
|
||||||
|
|
||||||
return glow_bicubic_upscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Environment::set_fog_enabled(bool p_enabled) {
|
void Environment::set_fog_enabled(bool p_enabled) {
|
||||||
|
|
||||||
fog_enabled = p_enabled;
|
fog_enabled = p_enabled;
|
||||||
|
@ -1067,9 +1056,6 @@ void Environment::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_glow_hdr_bleed_scale", "scale"), &Environment::set_glow_hdr_bleed_scale);
|
ClassDB::bind_method(D_METHOD("set_glow_hdr_bleed_scale", "scale"), &Environment::set_glow_hdr_bleed_scale);
|
||||||
ClassDB::bind_method(D_METHOD("get_glow_hdr_bleed_scale"), &Environment::get_glow_hdr_bleed_scale);
|
ClassDB::bind_method(D_METHOD("get_glow_hdr_bleed_scale"), &Environment::get_glow_hdr_bleed_scale);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_glow_bicubic_upscale", "enabled"), &Environment::set_glow_bicubic_upscale);
|
|
||||||
ClassDB::bind_method(D_METHOD("is_glow_bicubic_upscale_enabled"), &Environment::is_glow_bicubic_upscale_enabled);
|
|
||||||
|
|
||||||
ADD_GROUP("Glow", "glow_");
|
ADD_GROUP("Glow", "glow_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "glow_enabled"), "set_glow_enabled", "is_glow_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "glow_enabled"), "set_glow_enabled", "is_glow_enabled");
|
||||||
ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "glow_levels/1"), "set_glow_level", "is_glow_level_enabled", 0);
|
ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "glow_levels/1"), "set_glow_level", "is_glow_level_enabled", 0);
|
||||||
|
@ -1088,7 +1074,6 @@ void Environment::_bind_methods() {
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_hdr_threshold", PROPERTY_HINT_RANGE, "0.0,4.0,0.01"), "set_glow_hdr_bleed_threshold", "get_glow_hdr_bleed_threshold");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_hdr_threshold", PROPERTY_HINT_RANGE, "0.0,4.0,0.01"), "set_glow_hdr_bleed_threshold", "get_glow_hdr_bleed_threshold");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_hdr_luminance_cap", PROPERTY_HINT_RANGE, "0.0,256.0,0.01"), "set_glow_hdr_luminance_cap", "get_glow_hdr_luminance_cap");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_hdr_luminance_cap", PROPERTY_HINT_RANGE, "0.0,256.0,0.01"), "set_glow_hdr_luminance_cap", "get_glow_hdr_luminance_cap");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_hdr_scale", PROPERTY_HINT_RANGE, "0.0,4.0,0.01"), "set_glow_hdr_bleed_scale", "get_glow_hdr_bleed_scale");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_hdr_scale", PROPERTY_HINT_RANGE, "0.0,4.0,0.01"), "set_glow_hdr_bleed_scale", "get_glow_hdr_bleed_scale");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "glow_bicubic_upscale"), "set_glow_bicubic_upscale", "is_glow_bicubic_upscale_enabled");
|
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_adjustment_enable", "enabled"), &Environment::set_adjustment_enable);
|
ClassDB::bind_method(D_METHOD("set_adjustment_enable", "enabled"), &Environment::set_adjustment_enable);
|
||||||
ClassDB::bind_method(D_METHOD("is_adjustment_enabled"), &Environment::is_adjustment_enabled);
|
ClassDB::bind_method(D_METHOD("is_adjustment_enabled"), &Environment::is_adjustment_enabled);
|
||||||
|
@ -1209,7 +1194,6 @@ Environment::Environment() :
|
||||||
glow_hdr_bleed_threshold = 1.0;
|
glow_hdr_bleed_threshold = 1.0;
|
||||||
glow_hdr_luminance_cap = 12.0;
|
glow_hdr_luminance_cap = 12.0;
|
||||||
glow_hdr_bleed_scale = 2.0;
|
glow_hdr_bleed_scale = 2.0;
|
||||||
glow_bicubic_upscale = false;
|
|
||||||
|
|
||||||
fog_enabled = false;
|
fog_enabled = false;
|
||||||
fog_color = Color(0.5, 0.5, 0.5);
|
fog_color = Color(0.5, 0.5, 0.5);
|
||||||
|
|
|
@ -146,7 +146,6 @@ private:
|
||||||
float glow_hdr_bleed_threshold;
|
float glow_hdr_bleed_threshold;
|
||||||
float glow_hdr_bleed_scale;
|
float glow_hdr_bleed_scale;
|
||||||
float glow_hdr_luminance_cap;
|
float glow_hdr_luminance_cap;
|
||||||
bool glow_bicubic_upscale;
|
|
||||||
|
|
||||||
bool fog_enabled;
|
bool fog_enabled;
|
||||||
Color fog_color;
|
Color fog_color;
|
||||||
|
@ -318,9 +317,6 @@ public:
|
||||||
void set_glow_hdr_bleed_scale(float p_scale);
|
void set_glow_hdr_bleed_scale(float p_scale);
|
||||||
float get_glow_hdr_bleed_scale() const;
|
float get_glow_hdr_bleed_scale() const;
|
||||||
|
|
||||||
void set_glow_bicubic_upscale(bool p_enable);
|
|
||||||
bool is_glow_bicubic_upscale_enabled() const;
|
|
||||||
|
|
||||||
void set_fog_enabled(bool p_enabled);
|
void set_fog_enabled(bool p_enabled);
|
||||||
bool is_fog_enabled() const;
|
bool is_fog_enabled() const;
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,8 @@ public:
|
||||||
virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0;
|
virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) = 0;
|
virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) = 0;
|
||||||
|
virtual void environment_glow_set_use_bicubic_upscale(bool p_enable) = 0;
|
||||||
virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) = 0;
|
virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) = 0;
|
||||||
|
|
||||||
virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance, bool p_roughness) = 0;
|
virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance, bool p_roughness) = 0;
|
||||||
|
|
|
@ -1211,7 +1211,7 @@ void RasterizerSceneRD::environment_set_tonemap(RID p_env, RS::EnvironmentToneMa
|
||||||
env->auto_exp_scale = p_auto_exp_scale;
|
env->auto_exp_scale = p_auto_exp_scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerSceneRD::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) {
|
void RasterizerSceneRD::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) {
|
||||||
|
|
||||||
Environent *env = environment_owner.getornull(p_env);
|
Environent *env = environment_owner.getornull(p_env);
|
||||||
ERR_FAIL_COND(!env);
|
ERR_FAIL_COND(!env);
|
||||||
|
@ -1225,7 +1225,10 @@ void RasterizerSceneRD::environment_set_glow(RID p_env, bool p_enable, int p_lev
|
||||||
env->glow_hdr_bleed_threshold = p_hdr_bleed_threshold;
|
env->glow_hdr_bleed_threshold = p_hdr_bleed_threshold;
|
||||||
env->glow_hdr_bleed_scale = p_hdr_bleed_scale;
|
env->glow_hdr_bleed_scale = p_hdr_bleed_scale;
|
||||||
env->glow_hdr_luminance_cap = p_hdr_luminance_cap;
|
env->glow_hdr_luminance_cap = p_hdr_luminance_cap;
|
||||||
env->glow_bicubic_upscale = p_bicubic_upscale;
|
}
|
||||||
|
|
||||||
|
void RasterizerSceneRD::environment_glow_set_use_bicubic_upscale(bool p_enable) {
|
||||||
|
glow_bicubic_upscale = p_enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerSceneRD::environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_bias, float p_light_affect, float p_ao_channel_affect, RS::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness) {
|
void RasterizerSceneRD::environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_bias, float p_light_affect, float p_ao_channel_affect, RS::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness) {
|
||||||
|
@ -3339,7 +3342,7 @@ void RasterizerSceneRD::_render_buffers_post_process_and_tonemap(RID p_render_bu
|
||||||
tonemap.glow_level_flags = glow_mask;
|
tonemap.glow_level_flags = glow_mask;
|
||||||
tonemap.glow_texture_size.x = rb->blur[1].mipmaps[0].width;
|
tonemap.glow_texture_size.x = rb->blur[1].mipmaps[0].width;
|
||||||
tonemap.glow_texture_size.y = rb->blur[1].mipmaps[0].height;
|
tonemap.glow_texture_size.y = rb->blur[1].mipmaps[0].height;
|
||||||
tonemap.glow_use_bicubic_upscale = env->glow_bicubic_upscale;
|
tonemap.glow_use_bicubic_upscale = glow_bicubic_upscale;
|
||||||
tonemap.glow_texture = rb->blur[1].texture;
|
tonemap.glow_texture = rb->blur[1].texture;
|
||||||
} else {
|
} else {
|
||||||
tonemap.glow_texture = storage->texture_rd_get_default(RasterizerStorageRD::DEFAULT_RD_TEXTURE_BLACK);
|
tonemap.glow_texture = storage->texture_rd_get_default(RasterizerStorageRD::DEFAULT_RD_TEXTURE_BLACK);
|
||||||
|
@ -4008,6 +4011,7 @@ RasterizerSceneRD::RasterizerSceneRD(RasterizerStorageRD *p_storage) {
|
||||||
environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"));
|
environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"));
|
||||||
screen_space_roughness_limiter = GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter");
|
screen_space_roughness_limiter = GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter");
|
||||||
screen_space_roughness_limiter_curve = GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter_curve");
|
screen_space_roughness_limiter_curve = GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter_curve");
|
||||||
|
glow_bicubic_upscale = int(GLOBAL_GET("rendering/quality/glow/upscale_mode")) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
RasterizerSceneRD::~RasterizerSceneRD() {
|
RasterizerSceneRD::~RasterizerSceneRD() {
|
||||||
|
|
|
@ -646,7 +646,6 @@ private:
|
||||||
float glow_hdr_bleed_threshold = 1.0;
|
float glow_hdr_bleed_threshold = 1.0;
|
||||||
float glow_hdr_luminance_cap = 12.0;
|
float glow_hdr_luminance_cap = 12.0;
|
||||||
float glow_hdr_bleed_scale = 2.0;
|
float glow_hdr_bleed_scale = 2.0;
|
||||||
bool glow_bicubic_upscale = false;
|
|
||||||
|
|
||||||
/// SSAO
|
/// SSAO
|
||||||
|
|
||||||
|
@ -662,6 +661,7 @@ private:
|
||||||
|
|
||||||
RS::EnvironmentSSAOQuality ssao_quality = RS::ENV_SSAO_QUALITY_MEDIUM;
|
RS::EnvironmentSSAOQuality ssao_quality = RS::ENV_SSAO_QUALITY_MEDIUM;
|
||||||
bool ssao_half_size = false;
|
bool ssao_half_size = false;
|
||||||
|
bool glow_bicubic_upscale = false;
|
||||||
|
|
||||||
static uint64_t auto_exposure_counter;
|
static uint64_t auto_exposure_counter;
|
||||||
|
|
||||||
|
@ -827,7 +827,8 @@ public:
|
||||||
|
|
||||||
bool is_environment(RID p_env) const;
|
bool is_environment(RID p_env) const;
|
||||||
|
|
||||||
void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale);
|
void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap);
|
||||||
|
void environment_glow_set_use_bicubic_upscale(bool p_enable);
|
||||||
|
|
||||||
void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) {}
|
void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) {}
|
||||||
|
|
||||||
|
|
|
@ -527,7 +527,8 @@ public:
|
||||||
BIND9(environment_set_ssao, RID, bool, float, float, float, float, float, EnvironmentSSAOBlur, float)
|
BIND9(environment_set_ssao, RID, bool, float, float, float, float, float, EnvironmentSSAOBlur, float)
|
||||||
BIND2(environment_set_ssao_quality, EnvironmentSSAOQuality, bool)
|
BIND2(environment_set_ssao_quality, EnvironmentSSAOQuality, bool)
|
||||||
|
|
||||||
BIND12(environment_set_glow, RID, bool, int, float, float, float, float, EnvironmentGlowBlendMode, float, float, float, bool)
|
BIND11(environment_set_glow, RID, bool, int, float, float, float, float, EnvironmentGlowBlendMode, float, float, float)
|
||||||
|
BIND1(environment_glow_set_use_bicubic_upscale, bool)
|
||||||
|
|
||||||
BIND9(environment_set_tonemap, RID, EnvironmentToneMapper, float, float, bool, float, float, float, float)
|
BIND9(environment_set_tonemap, RID, EnvironmentToneMapper, float, float, bool, float, float, float, float)
|
||||||
|
|
||||||
|
|
|
@ -442,7 +442,8 @@ public:
|
||||||
|
|
||||||
FUNC2(environment_set_ssao_quality, EnvironmentSSAOQuality, bool)
|
FUNC2(environment_set_ssao_quality, EnvironmentSSAOQuality, bool)
|
||||||
|
|
||||||
FUNC12(environment_set_glow, RID, bool, int, float, float, float, float, EnvironmentGlowBlendMode, float, float, float, bool)
|
FUNC11(environment_set_glow, RID, bool, int, float, float, float, float, EnvironmentGlowBlendMode, float, float, float)
|
||||||
|
FUNC1(environment_glow_set_use_bicubic_upscale, bool)
|
||||||
|
|
||||||
FUNC9(environment_set_tonemap, RID, EnvironmentToneMapper, float, float, bool, float, float, float, float)
|
FUNC9(environment_set_tonemap, RID, EnvironmentToneMapper, float, float, bool, float, float, float, float)
|
||||||
|
|
||||||
|
|
|
@ -2355,6 +2355,10 @@ RenderingServer::RenderingServer() {
|
||||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/filters/screen_space_roughness_limiter", PropertyInfo(Variant::INT, "rendering/quality/filters/screen_space_roughness_limiter", PROPERTY_HINT_ENUM, "Disabled,Enabled (Small Cost)"));
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/filters/screen_space_roughness_limiter", PropertyInfo(Variant::INT, "rendering/quality/filters/screen_space_roughness_limiter", PROPERTY_HINT_ENUM, "Disabled,Enabled (Small Cost)"));
|
||||||
GLOBAL_DEF("rendering/quality/filters/screen_space_roughness_limiter_curve", 1.0);
|
GLOBAL_DEF("rendering/quality/filters/screen_space_roughness_limiter_curve", 1.0);
|
||||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/filters/screen_space_roughness_limiter_curve", PropertyInfo(Variant::FLOAT, "rendering/quality/filters/screen_space_roughness_limiter_curve", PROPERTY_HINT_EXP_EASING, "0.01,8,0.01"));
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/filters/screen_space_roughness_limiter_curve", PropertyInfo(Variant::FLOAT, "rendering/quality/filters/screen_space_roughness_limiter_curve", PROPERTY_HINT_EXP_EASING, "0.01,8,0.01"));
|
||||||
|
|
||||||
|
GLOBAL_DEF("rendering/quality/glow/upscale_mode", 1);
|
||||||
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/glow/upscale_mode", PropertyInfo(Variant::INT, "rendering/quality/glow/upscale_mode", PROPERTY_HINT_ENUM, "Linear (Fast),Bicubic (Slower)"));
|
||||||
|
GLOBAL_DEF("rendering/quality/glow/upscale_mode.mobile", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderingServer::~RenderingServer() {
|
RenderingServer::~RenderingServer() {
|
||||||
|
|
|
@ -733,7 +733,9 @@ public:
|
||||||
ENV_GLOW_BLEND_MODE_REPLACE,
|
ENV_GLOW_BLEND_MODE_REPLACE,
|
||||||
ENV_GLOW_BLEND_MODE_MIX,
|
ENV_GLOW_BLEND_MODE_MIX,
|
||||||
};
|
};
|
||||||
virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) = 0;
|
virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) = 0;
|
||||||
|
|
||||||
|
virtual void environment_glow_set_use_bicubic_upscale(bool p_enable) = 0;
|
||||||
|
|
||||||
enum EnvironmentToneMapper {
|
enum EnvironmentToneMapper {
|
||||||
ENV_TONE_MAPPER_LINEAR,
|
ENV_TONE_MAPPER_LINEAR,
|
||||||
|
|
Loading…
Reference in a new issue