Tweak Glow defaults for a more visually pleasing appearance

- Use the Screen blend mode instead of Soft Light.
- Use a lower intensity to compensate for the stronger appearance
  of the Screen blend mode instead of Soft Light.
- Tweak glow levels to only use the first 4 levels in a more
  "progressive" manner.
This commit is contained in:
Hugo Locurcio 2021-08-29 17:31:10 +02:00
parent 4d5f10fc3a
commit f841217ea4
No known key found for this signature in database
GPG key ID: 39E8F8BE30B0A49C
5 changed files with 21 additions and 21 deletions

View file

@ -111,7 +111,7 @@
<member name="fog_sun_scatter" type="float" setter="set_fog_sun_scatter" getter="get_fog_sun_scatter" default="0.0">
If set above [code]0.0[/code], renders the scene's directional light(s) in the fog color depending on the view angle. This can be used to give the impression that the sun is "piercing" through the fog.
</member>
<member name="glow_blend_mode" type="int" setter="set_glow_blend_mode" getter="get_glow_blend_mode" enum="Environment.GlowBlendMode" default="2">
<member name="glow_blend_mode" type="int" setter="set_glow_blend_mode" getter="get_glow_blend_mode" enum="Environment.GlowBlendMode" default="1">
The glow blending mode.
</member>
<member name="glow_bloom" type="float" setter="set_glow_bloom" getter="get_glow_bloom" default="0.0">
@ -130,22 +130,22 @@
<member name="glow_hdr_threshold" type="float" setter="set_glow_hdr_bleed_threshold" getter="get_glow_hdr_bleed_threshold" default="1.0">
The lower threshold of the HDR glow. When using the Mobile rendering method (which only supports a lower dynamic range up to [code]2.0[/code]), this may need to be below [code]1.0[/code] for glow to be visible. A value of [code]0.9[/code] works well in this case. This value also needs to be decreased below [code]1.0[/code] when using glow in 2D, as 2D rendering is performed in SDR.
</member>
<member name="glow_intensity" type="float" setter="set_glow_intensity" getter="get_glow_intensity" default="0.8">
The overall brightness multiplier of the glow effect. When using the Mobile rendering method (which only supports a lower dynamic range up to [code]2.0[/code]), this should be increased to [code]1.5[/code] to compensate.
<member name="glow_intensity" type="float" setter="set_glow_intensity" getter="get_glow_intensity" default="0.3">
The overall brightness multiplier of the glow effect. When using the Mobile rendering method (which only supports a lower dynamic range up to [code]2.0[/code]), this should be increased to [code]0.6[/code] to compensate.
</member>
<member name="glow_levels/1" type="float" setter="set_glow_level" getter="get_glow_level" default="0.0">
<member name="glow_levels/1" type="float" setter="set_glow_level" getter="get_glow_level" default="1.0">
The intensity of the 1st level of glow. This is the most "local" level (least blurry).
</member>
<member name="glow_levels/2" type="float" setter="set_glow_level" getter="get_glow_level" default="0.0">
<member name="glow_levels/2" type="float" setter="set_glow_level" getter="get_glow_level" default="0.8">
The intensity of the 2nd level of glow.
</member>
<member name="glow_levels/3" type="float" setter="set_glow_level" getter="get_glow_level" default="1.0">
<member name="glow_levels/3" type="float" setter="set_glow_level" getter="get_glow_level" default="0.4">
The intensity of the 3rd level of glow.
</member>
<member name="glow_levels/4" type="float" setter="set_glow_level" getter="get_glow_level" default="0.0">
<member name="glow_levels/4" type="float" setter="set_glow_level" getter="get_glow_level" default="0.1">
The intensity of the 4th level of glow.
</member>
<member name="glow_levels/5" type="float" setter="set_glow_level" getter="get_glow_level" default="1.0">
<member name="glow_levels/5" type="float" setter="set_glow_level" getter="get_glow_level" default="0.0">
The intensity of the 5th level of glow.
</member>
<member name="glow_levels/6" type="float" setter="set_glow_level" getter="get_glow_level" default="0.0">

View file

@ -1369,7 +1369,7 @@ void Environment::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_strength", PROPERTY_HINT_RANGE, "0.0,2.0,0.01"), "set_glow_strength", "get_glow_strength");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_mix", PROPERTY_HINT_RANGE, "0.0,1.0,0.001"), "set_glow_mix", "get_glow_mix");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "glow_bloom", PROPERTY_HINT_RANGE, "0.0,1.0,0.01"), "set_glow_bloom", "get_glow_bloom");
ADD_PROPERTY(PropertyInfo(Variant::INT, "glow_blend_mode", PROPERTY_HINT_ENUM, "Additive,Screen,Softlight,Replace,Mix"), "set_glow_blend_mode", "get_glow_blend_mode");
ADD_PROPERTY(PropertyInfo(Variant::INT, "glow_blend_mode", PROPERTY_HINT_ENUM, "Additive,Screen,Soft Light,Replace,Mix"), "set_glow_blend_mode", "get_glow_blend_mode");
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_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_luminance_cap", PROPERTY_HINT_RANGE, "0.0,256.0,0.01"), "set_glow_hdr_luminance_cap", "get_glow_hdr_luminance_cap");
@ -1518,11 +1518,11 @@ Environment::Environment() {
set_camera_feed_id(bg_camera_feed_id);
glow_levels.resize(7);
glow_levels.write[0] = 0.0;
glow_levels.write[1] = 0.0;
glow_levels.write[2] = 1.0;
glow_levels.write[3] = 0.0;
glow_levels.write[4] = 1.0;
glow_levels.write[0] = 1.0;
glow_levels.write[1] = 0.8;
glow_levels.write[2] = 0.4;
glow_levels.write[3] = 0.1;
glow_levels.write[4] = 0.0;
glow_levels.write[5] = 0.0;
glow_levels.write[6] = 0.0;

View file

@ -158,11 +158,11 @@ private:
bool glow_enabled = false;
Vector<float> glow_levels;
bool glow_normalize_levels = false;
float glow_intensity = 0.8;
float glow_intensity = 0.3;
float glow_strength = 1.0;
float glow_mix = 0.05;
float glow_bloom = 0.0;
GlowBlendMode glow_blend_mode = GLOW_BLEND_MODE_SOFTLIGHT;
GlowBlendMode glow_blend_mode = GLOW_BLEND_MODE_SCREEN;
float glow_hdr_bleed_threshold = 1.0;
float glow_hdr_bleed_scale = 2.0;
float glow_hdr_luminance_cap = 12.0;

View file

@ -110,10 +110,10 @@ public:
GLOW_MODE_MIX
};
GlowMode glow_mode = GLOW_MODE_ADD;
float glow_intensity = 1.0;
GlowMode glow_mode = GLOW_MODE_SCREEN;
float glow_intensity = 0.3;
float glow_map_strength = 0.0f;
float glow_levels[7] = { 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0 };
float glow_levels[7] = { 1.0, 0.8, 0.4, 0.1, 0.0, 0.0, 0.0 };
Vector2i glow_texture_size;
bool glow_use_bicubic_upscale = false;
RID glow_texture;

View file

@ -89,11 +89,11 @@ private:
// Glow
bool glow_enabled = false;
Vector<float> glow_levels;
float glow_intensity = 0.8;
float glow_intensity = 0.3;
float glow_strength = 1.0;
float glow_bloom = 0.0;
float glow_mix = 0.01;
RS::EnvironmentGlowBlendMode glow_blend_mode = RS::ENV_GLOW_BLEND_MODE_SOFTLIGHT;
RS::EnvironmentGlowBlendMode glow_blend_mode = RS::ENV_GLOW_BLEND_MODE_SCREEN;
float glow_hdr_bleed_threshold = 1.0;
float glow_hdr_luminance_cap = 12.0;
float glow_hdr_bleed_scale = 2.0;