Merge pull request #56761 from Calinou/sdfgi-allow-any-number-of-cascades
This commit is contained in:
commit
01eefa2c50
|
@ -168,7 +168,8 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="sdfgi_cascade0_distance" type="float" setter="set_sdfgi_cascade0_distance" getter="get_sdfgi_cascade0_distance" default="12.8">
|
<member name="sdfgi_cascade0_distance" type="float" setter="set_sdfgi_cascade0_distance" getter="get_sdfgi_cascade0_distance" default="12.8">
|
||||||
</member>
|
</member>
|
||||||
<member name="sdfgi_cascades" type="int" setter="set_sdfgi_cascades" getter="get_sdfgi_cascades" enum="Environment.SDFGICascades" default="1">
|
<member name="sdfgi_cascades" type="int" setter="set_sdfgi_cascades" getter="get_sdfgi_cascades" default="6">
|
||||||
|
The number of cascades to use for SDFGI (between 1 and 8). A higher number of cascades allows displaying SDFGI further away while preserving detail up close, at the cost of performance. When using SDFGI on small-scale levels, [member sdfgi_cascades] can often be decreased between [code]1[/code] and [code]4[/code] to improve performance.
|
||||||
</member>
|
</member>
|
||||||
<member name="sdfgi_enabled" type="bool" setter="set_sdfgi_enabled" getter="is_sdfgi_enabled" default="false">
|
<member name="sdfgi_enabled" type="bool" setter="set_sdfgi_enabled" getter="is_sdfgi_enabled" default="false">
|
||||||
If [code]true[/code], enables signed distance field global illumination for meshes that have their [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_BAKED]. SDFGI is a real-time global illumination technique that works well with procedurally generated and user-built levels, including in situations where geometry is created during gameplay. The signed distance field is automatically generated around the camera as it moves. Dynamic lights are supported, but dynamic occluders and emissive surfaces are not.
|
If [code]true[/code], enables signed distance field global illumination for meshes that have their [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_BAKED]. SDFGI is a real-time global illumination technique that works well with procedurally generated and user-built levels, including in situations where geometry is created during gameplay. The signed distance field is automatically generated around the camera as it moves. Dynamic lights are supported, but dynamic occluders and emissive surfaces are not.
|
||||||
|
@ -371,12 +372,6 @@
|
||||||
<constant name="GLOW_BLEND_MODE_MIX" value="4" enum="GlowBlendMode">
|
<constant name="GLOW_BLEND_MODE_MIX" value="4" enum="GlowBlendMode">
|
||||||
Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect.
|
Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="SDFGI_CASCADES_4" value="0" enum="SDFGICascades">
|
|
||||||
</constant>
|
|
||||||
<constant name="SDFGI_CASCADES_6" value="1" enum="SDFGICascades">
|
|
||||||
</constant>
|
|
||||||
<constant name="SDFGI_CASCADES_8" value="2" enum="SDFGICascades">
|
|
||||||
</constant>
|
|
||||||
<constant name="SDFGI_Y_SCALE_DISABLED" value="0" enum="SDFGIYScale">
|
<constant name="SDFGI_Y_SCALE_DISABLED" value="0" enum="SDFGIYScale">
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="SDFGI_Y_SCALE_75_PERCENT" value="1" enum="SDFGIYScale">
|
<constant name="SDFGI_Y_SCALE_75_PERCENT" value="1" enum="SDFGIYScale">
|
||||||
|
|
|
@ -1001,7 +1001,7 @@
|
||||||
<return type="void" />
|
<return type="void" />
|
||||||
<argument index="0" name="env" type="RID" />
|
<argument index="0" name="env" type="RID" />
|
||||||
<argument index="1" name="enable" type="bool" />
|
<argument index="1" name="enable" type="bool" />
|
||||||
<argument index="2" name="cascades" type="int" enum="RenderingServer.EnvironmentSDFGICascades" />
|
<argument index="2" name="cascades" type="int" />
|
||||||
<argument index="3" name="min_cell_size" type="float" />
|
<argument index="3" name="min_cell_size" type="float" />
|
||||||
<argument index="4" name="y_scale" type="int" enum="RenderingServer.EnvironmentSDFGIYScale" />
|
<argument index="4" name="y_scale" type="int" enum="RenderingServer.EnvironmentSDFGIYScale" />
|
||||||
<argument index="5" name="use_occlusion" type="bool" />
|
<argument index="5" name="use_occlusion" type="bool" />
|
||||||
|
@ -4179,12 +4179,6 @@
|
||||||
<constant name="ENV_SSIL_QUALITY_ULTRA" value="4" enum="EnvironmentSSILQuality">
|
<constant name="ENV_SSIL_QUALITY_ULTRA" value="4" enum="EnvironmentSSILQuality">
|
||||||
Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.
|
Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="ENV_SDFGI_CASCADES_4" value="0" enum="EnvironmentSDFGICascades">
|
|
||||||
</constant>
|
|
||||||
<constant name="ENV_SDFGI_CASCADES_6" value="1" enum="EnvironmentSDFGICascades">
|
|
||||||
</constant>
|
|
||||||
<constant name="ENV_SDFGI_CASCADES_8" value="2" enum="EnvironmentSDFGICascades">
|
|
||||||
</constant>
|
|
||||||
<constant name="ENV_SDFGI_Y_SCALE_DISABLED" value="0" enum="EnvironmentSDFGIYScale">
|
<constant name="ENV_SDFGI_Y_SCALE_DISABLED" value="0" enum="EnvironmentSDFGIYScale">
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="ENV_SDFGI_Y_SCALE_75_PERCENT" value="1" enum="EnvironmentSDFGIYScale">
|
<constant name="ENV_SDFGI_Y_SCALE_75_PERCENT" value="1" enum="EnvironmentSDFGIYScale">
|
||||||
|
|
|
@ -234,7 +234,7 @@ void RasterizerSceneGLES3::environment_set_ssil(RID p_env, bool p_enable, float
|
||||||
void RasterizerSceneGLES3::environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) {
|
void RasterizerSceneGLES3::environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerSceneGLES3::environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
|
void RasterizerSceneGLES3::environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerSceneGLES3::environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) {
|
void RasterizerSceneGLES3::environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) {
|
||||||
|
|
|
@ -126,7 +126,7 @@ public:
|
||||||
void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override;
|
void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override;
|
||||||
void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override;
|
void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override;
|
||||||
|
|
||||||
void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override;
|
void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override;
|
||||||
|
|
||||||
void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override;
|
void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override;
|
||||||
void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override;
|
void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override;
|
||||||
|
|
|
@ -496,13 +496,13 @@ bool Environment::is_sdfgi_enabled() const {
|
||||||
return sdfgi_enabled;
|
return sdfgi_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Environment::set_sdfgi_cascades(SDFGICascades p_cascades) {
|
void Environment::set_sdfgi_cascades(int p_cascades) {
|
||||||
ERR_FAIL_INDEX(p_cascades, SDFGI_CASCADES_8 + 1);
|
ERR_FAIL_COND_MSG(p_cascades < 1 || p_cascades > 8, "Invalid number of SDFGI cascades (must be between 1 and 8).");
|
||||||
sdfgi_cascades = p_cascades;
|
sdfgi_cascades = p_cascades;
|
||||||
_update_sdfgi();
|
_update_sdfgi();
|
||||||
}
|
}
|
||||||
|
|
||||||
Environment::SDFGICascades Environment::get_sdfgi_cascades() const {
|
int Environment::get_sdfgi_cascades() const {
|
||||||
return sdfgi_cascades;
|
return sdfgi_cascades;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -517,9 +517,7 @@ float Environment::get_sdfgi_min_cell_size() const {
|
||||||
|
|
||||||
void Environment::set_sdfgi_max_distance(float p_distance) {
|
void Environment::set_sdfgi_max_distance(float p_distance) {
|
||||||
p_distance /= 64.0;
|
p_distance /= 64.0;
|
||||||
int cc[3] = { 4, 6, 8 };
|
for (int i = 0; i < sdfgi_cascades; i++) {
|
||||||
int cascades = cc[sdfgi_cascades];
|
|
||||||
for (int i = 0; i < cascades; i++) {
|
|
||||||
p_distance *= 0.5; //halve for each cascade
|
p_distance *= 0.5; //halve for each cascade
|
||||||
}
|
}
|
||||||
sdfgi_min_cell_size = p_distance;
|
sdfgi_min_cell_size = p_distance;
|
||||||
|
@ -529,9 +527,7 @@ void Environment::set_sdfgi_max_distance(float p_distance) {
|
||||||
float Environment::get_sdfgi_max_distance() const {
|
float Environment::get_sdfgi_max_distance() const {
|
||||||
float md = sdfgi_min_cell_size;
|
float md = sdfgi_min_cell_size;
|
||||||
md *= 64.0;
|
md *= 64.0;
|
||||||
int cc[3] = { 4, 6, 8 };
|
for (int i = 0; i < sdfgi_cascades; i++) {
|
||||||
int cascades = cc[sdfgi_cascades];
|
|
||||||
for (int i = 0; i < cascades; i++) {
|
|
||||||
md *= 2.0;
|
md *= 2.0;
|
||||||
}
|
}
|
||||||
return md;
|
return md;
|
||||||
|
@ -612,7 +608,7 @@ void Environment::_update_sdfgi() {
|
||||||
RS::get_singleton()->environment_set_sdfgi(
|
RS::get_singleton()->environment_set_sdfgi(
|
||||||
environment,
|
environment,
|
||||||
sdfgi_enabled,
|
sdfgi_enabled,
|
||||||
RS::EnvironmentSDFGICascades(sdfgi_cascades),
|
sdfgi_cascades,
|
||||||
sdfgi_min_cell_size,
|
sdfgi_min_cell_size,
|
||||||
RS::EnvironmentSDFGIYScale(sdfgi_y_scale),
|
RS::EnvironmentSDFGIYScale(sdfgi_y_scale),
|
||||||
sdfgi_use_occlusion,
|
sdfgi_use_occlusion,
|
||||||
|
@ -1303,7 +1299,7 @@ void Environment::_bind_methods() {
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "sdfgi_use_occlusion"), "set_sdfgi_use_occlusion", "is_sdfgi_using_occlusion");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "sdfgi_use_occlusion"), "set_sdfgi_use_occlusion", "is_sdfgi_using_occlusion");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "sdfgi_read_sky_light"), "set_sdfgi_read_sky_light", "is_sdfgi_reading_sky_light");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "sdfgi_read_sky_light"), "set_sdfgi_read_sky_light", "is_sdfgi_reading_sky_light");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_bounce_feedback", PROPERTY_HINT_RANGE, "0,1.99,0.01"), "set_sdfgi_bounce_feedback", "get_sdfgi_bounce_feedback");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_bounce_feedback", PROPERTY_HINT_RANGE, "0,1.99,0.01"), "set_sdfgi_bounce_feedback", "get_sdfgi_bounce_feedback");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "sdfgi_cascades", PROPERTY_HINT_ENUM, "4 Cascades,6 Cascades,8 Cascades"), "set_sdfgi_cascades", "get_sdfgi_cascades");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "sdfgi_cascades", PROPERTY_HINT_RANGE, "1,8,1"), "set_sdfgi_cascades", "get_sdfgi_cascades");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_min_cell_size", PROPERTY_HINT_RANGE, "0.01,64,0.01"), "set_sdfgi_min_cell_size", "get_sdfgi_min_cell_size");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_min_cell_size", PROPERTY_HINT_RANGE, "0.01,64,0.01"), "set_sdfgi_min_cell_size", "get_sdfgi_min_cell_size");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_cascade0_distance", PROPERTY_HINT_RANGE, "0.1,16384,0.1,or_greater"), "set_sdfgi_cascade0_distance", "get_sdfgi_cascade0_distance");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_cascade0_distance", PROPERTY_HINT_RANGE, "0.1,16384,0.1,or_greater"), "set_sdfgi_cascade0_distance", "get_sdfgi_cascade0_distance");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_max_distance", PROPERTY_HINT_RANGE, "0.1,16384,0.1,or_greater"), "set_sdfgi_max_distance", "get_sdfgi_max_distance");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sdfgi_max_distance", PROPERTY_HINT_RANGE, "0.1,16384,0.1,or_greater"), "set_sdfgi_max_distance", "get_sdfgi_max_distance");
|
||||||
|
@ -1480,10 +1476,6 @@ void Environment::_bind_methods() {
|
||||||
BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_REPLACE);
|
BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_REPLACE);
|
||||||
BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_MIX);
|
BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_MIX);
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(SDFGI_CASCADES_4);
|
|
||||||
BIND_ENUM_CONSTANT(SDFGI_CASCADES_6);
|
|
||||||
BIND_ENUM_CONSTANT(SDFGI_CASCADES_8);
|
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(SDFGI_Y_SCALE_DISABLED);
|
BIND_ENUM_CONSTANT(SDFGI_Y_SCALE_DISABLED);
|
||||||
BIND_ENUM_CONSTANT(SDFGI_Y_SCALE_75_PERCENT);
|
BIND_ENUM_CONSTANT(SDFGI_Y_SCALE_75_PERCENT);
|
||||||
BIND_ENUM_CONSTANT(SDFGI_Y_SCALE_50_PERCENT);
|
BIND_ENUM_CONSTANT(SDFGI_Y_SCALE_50_PERCENT);
|
||||||
|
|
|
@ -70,12 +70,6 @@ public:
|
||||||
TONE_MAPPER_ACES,
|
TONE_MAPPER_ACES,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SDFGICascades {
|
|
||||||
SDFGI_CASCADES_4,
|
|
||||||
SDFGI_CASCADES_6,
|
|
||||||
SDFGI_CASCADES_8,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum SDFGIYScale {
|
enum SDFGIYScale {
|
||||||
SDFGI_Y_SCALE_DISABLED,
|
SDFGI_Y_SCALE_DISABLED,
|
||||||
SDFGI_Y_SCALE_75_PERCENT,
|
SDFGI_Y_SCALE_75_PERCENT,
|
||||||
|
@ -153,7 +147,7 @@ private:
|
||||||
|
|
||||||
// SDFGI
|
// SDFGI
|
||||||
bool sdfgi_enabled = false;
|
bool sdfgi_enabled = false;
|
||||||
SDFGICascades sdfgi_cascades = SDFGI_CASCADES_6;
|
int sdfgi_cascades = 6;
|
||||||
float sdfgi_min_cell_size = 0.2;
|
float sdfgi_min_cell_size = 0.2;
|
||||||
SDFGIYScale sdfgi_y_scale = SDFGI_Y_SCALE_DISABLED;
|
SDFGIYScale sdfgi_y_scale = SDFGI_Y_SCALE_DISABLED;
|
||||||
bool sdfgi_use_occlusion = false;
|
bool sdfgi_use_occlusion = false;
|
||||||
|
@ -320,8 +314,8 @@ public:
|
||||||
// SDFGI
|
// SDFGI
|
||||||
void set_sdfgi_enabled(bool p_enabled);
|
void set_sdfgi_enabled(bool p_enabled);
|
||||||
bool is_sdfgi_enabled() const;
|
bool is_sdfgi_enabled() const;
|
||||||
void set_sdfgi_cascades(SDFGICascades p_cascades);
|
void set_sdfgi_cascades(int p_cascades);
|
||||||
SDFGICascades get_sdfgi_cascades() const;
|
int get_sdfgi_cascades() const;
|
||||||
void set_sdfgi_min_cell_size(float p_size);
|
void set_sdfgi_min_cell_size(float p_size);
|
||||||
float get_sdfgi_min_cell_size() const;
|
float get_sdfgi_min_cell_size() const;
|
||||||
void set_sdfgi_max_distance(float p_distance);
|
void set_sdfgi_max_distance(float p_distance);
|
||||||
|
@ -433,7 +427,6 @@ VARIANT_ENUM_CAST(Environment::BGMode)
|
||||||
VARIANT_ENUM_CAST(Environment::AmbientSource)
|
VARIANT_ENUM_CAST(Environment::AmbientSource)
|
||||||
VARIANT_ENUM_CAST(Environment::ReflectionSource)
|
VARIANT_ENUM_CAST(Environment::ReflectionSource)
|
||||||
VARIANT_ENUM_CAST(Environment::ToneMapper)
|
VARIANT_ENUM_CAST(Environment::ToneMapper)
|
||||||
VARIANT_ENUM_CAST(Environment::SDFGICascades)
|
|
||||||
VARIANT_ENUM_CAST(Environment::SDFGIYScale)
|
VARIANT_ENUM_CAST(Environment::SDFGIYScale)
|
||||||
VARIANT_ENUM_CAST(Environment::GlowBlendMode)
|
VARIANT_ENUM_CAST(Environment::GlowBlendMode)
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ public:
|
||||||
void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override {}
|
void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override {}
|
||||||
void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {}
|
void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {}
|
||||||
|
|
||||||
void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override {}
|
void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override {}
|
||||||
|
|
||||||
void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override {}
|
void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override {}
|
||||||
void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override {}
|
void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override {}
|
||||||
|
|
|
@ -68,7 +68,7 @@ void RendererSceneEnvironmentRD::set_glow(bool p_enable, Vector<float> p_levels,
|
||||||
glow_hdr_luminance_cap = p_hdr_luminance_cap;
|
glow_hdr_luminance_cap = p_hdr_luminance_cap;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RendererSceneEnvironmentRD::set_sdfgi(bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
|
void RendererSceneEnvironmentRD::set_sdfgi(bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
|
||||||
sdfgi_enabled = p_enable;
|
sdfgi_enabled = p_enable;
|
||||||
sdfgi_cascades = p_cascades;
|
sdfgi_cascades = p_cascades;
|
||||||
sdfgi_min_cell_size = p_min_cell_size;
|
sdfgi_min_cell_size = p_min_cell_size;
|
||||||
|
|
|
@ -133,7 +133,7 @@ public:
|
||||||
|
|
||||||
/// SDFGI
|
/// SDFGI
|
||||||
bool sdfgi_enabled = false;
|
bool sdfgi_enabled = false;
|
||||||
RS::EnvironmentSDFGICascades sdfgi_cascades;
|
int sdfgi_cascades = 6;
|
||||||
float sdfgi_min_cell_size = 0.2;
|
float sdfgi_min_cell_size = 0.2;
|
||||||
bool sdfgi_use_occlusion = false;
|
bool sdfgi_use_occlusion = false;
|
||||||
float sdfgi_bounce_feedback = 0.0;
|
float sdfgi_bounce_feedback = 0.0;
|
||||||
|
@ -155,7 +155,7 @@ public:
|
||||||
void set_ambient_light(const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source);
|
void set_ambient_light(const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source);
|
||||||
void set_tonemap(RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale);
|
void set_tonemap(RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale);
|
||||||
void set_glow(bool p_enable, Vector<float> p_levels, 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 set_glow(bool p_enable, Vector<float> p_levels, 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 set_sdfgi(bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias);
|
void set_sdfgi(bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias);
|
||||||
void set_fog(bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_fog_aerial_perspective);
|
void set_fog(bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_fog_aerial_perspective);
|
||||||
void set_volumetric_fog(bool p_enable, float p_density, const Color &p_scatterin, const Color &p_emission, float p_emission_energy, float p_anisotropy, float p_length, float p_detail_spread, float p_gi_inject, bool p_temporal_reprojection, float p_temporal_reprojection_amount, float p_ambient_inject);
|
void set_volumetric_fog(bool p_enable, float p_density, const Color &p_scatterin, const Color &p_emission, float p_emission_energy, float p_anisotropy, float p_length, float p_detail_spread, float p_gi_inject, bool p_temporal_reprojection, float p_temporal_reprojection_amount, float p_ambient_inject);
|
||||||
void set_ssr(bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance);
|
void set_ssr(bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance);
|
||||||
|
|
|
@ -42,14 +42,13 @@ const Vector3i RendererSceneGIRD::SDFGI::Cascade::DIRTY_ALL = Vector3i(0x7FFFFFF
|
||||||
void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const Vector3 &p_world_position, uint32_t p_requested_history_size, RendererSceneGIRD *p_gi) {
|
void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const Vector3 &p_world_position, uint32_t p_requested_history_size, RendererSceneGIRD *p_gi) {
|
||||||
storage = p_gi->storage;
|
storage = p_gi->storage;
|
||||||
gi = p_gi;
|
gi = p_gi;
|
||||||
cascade_mode = p_env->sdfgi_cascades;
|
num_cascades = p_env->sdfgi_cascades;
|
||||||
min_cell_size = p_env->sdfgi_min_cell_size;
|
min_cell_size = p_env->sdfgi_min_cell_size;
|
||||||
uses_occlusion = p_env->sdfgi_use_occlusion;
|
uses_occlusion = p_env->sdfgi_use_occlusion;
|
||||||
y_scale_mode = p_env->sdfgi_y_scale;
|
y_scale_mode = p_env->sdfgi_y_scale;
|
||||||
static const float y_scale[3] = { 1.0, 1.5, 2.0 };
|
static const float y_scale[3] = { 1.0, 1.5, 2.0 };
|
||||||
y_mult = y_scale[y_scale_mode];
|
y_mult = y_scale[y_scale_mode];
|
||||||
static const int cascasde_size[3] = { 4, 6, 8 };
|
cascades.resize(num_cascades);
|
||||||
cascades.resize(cascasde_size[cascade_mode]);
|
|
||||||
probe_axis_count = SDFGI::PROBE_DIVISOR + 1;
|
probe_axis_count = SDFGI::PROBE_DIVISOR + 1;
|
||||||
solid_cell_ratio = gi->sdfgi_solid_cell_ratio;
|
solid_cell_ratio = gi->sdfgi_solid_cell_ratio;
|
||||||
solid_cell_count = uint32_t(float(cascade_size * cascade_size * cascade_size) * solid_cell_ratio);
|
solid_cell_count = uint32_t(float(cascade_size * cascade_size * cascade_size) * solid_cell_ratio);
|
||||||
|
@ -716,7 +715,10 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V
|
||||||
u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
|
u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
|
||||||
u.binding = 13;
|
u.binding = 13;
|
||||||
RID parent_average;
|
RID parent_average;
|
||||||
if (i < cascades.size() - 1) {
|
if (cascades.size() == 1) {
|
||||||
|
// If there is only one SDFGI cascade, we can't use the previous cascade for blending.
|
||||||
|
parent_average = cascades[i].lightprobe_average_tex;
|
||||||
|
} else if (i < cascades.size() - 1) {
|
||||||
parent_average = cascades[i + 1].lightprobe_average_tex;
|
parent_average = cascades[i + 1].lightprobe_average_tex;
|
||||||
} else {
|
} else {
|
||||||
parent_average = cascades[i - 1].lightprobe_average_tex; //to use something, but it won't be used
|
parent_average = cascades[i - 1].lightprobe_average_tex; //to use something, but it won't be used
|
||||||
|
|
|
@ -495,7 +495,7 @@ public:
|
||||||
float solid_cell_ratio = 0;
|
float solid_cell_ratio = 0;
|
||||||
uint32_t solid_cell_count = 0;
|
uint32_t solid_cell_count = 0;
|
||||||
|
|
||||||
RS::EnvironmentSDFGICascades cascade_mode;
|
int num_cascades = 6;
|
||||||
float min_cell_size = 0;
|
float min_cell_size = 0;
|
||||||
uint32_t probe_axis_count = 0; //amount of probes per axis, this is an odd number because it encloses endpoints
|
uint32_t probe_axis_count = 0; //amount of probes per axis, this is an odd number because it encloses endpoints
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ void RendererSceneRenderRD::sdfgi_update(RID p_render_buffers, RID p_environment
|
||||||
static const uint32_t history_frames_to_converge[RS::ENV_SDFGI_CONVERGE_MAX] = { 5, 10, 15, 20, 25, 30 };
|
static const uint32_t history_frames_to_converge[RS::ENV_SDFGI_CONVERGE_MAX] = { 5, 10, 15, 20, 25, 30 };
|
||||||
uint32_t requested_history_size = history_frames_to_converge[gi.sdfgi_frames_to_converge];
|
uint32_t requested_history_size = history_frames_to_converge[gi.sdfgi_frames_to_converge];
|
||||||
|
|
||||||
if (rb->sdfgi && (rb->sdfgi->cascade_mode != env->sdfgi_cascades || rb->sdfgi->min_cell_size != env->sdfgi_min_cell_size || requested_history_size != rb->sdfgi->history_size || rb->sdfgi->uses_occlusion != env->sdfgi_use_occlusion || rb->sdfgi->y_scale_mode != env->sdfgi_y_scale)) {
|
if (rb->sdfgi && (rb->sdfgi->num_cascades != env->sdfgi_cascades || rb->sdfgi->min_cell_size != env->sdfgi_min_cell_size || requested_history_size != rb->sdfgi->history_size || rb->sdfgi->uses_occlusion != env->sdfgi_use_occlusion || rb->sdfgi->y_scale_mode != env->sdfgi_y_scale)) {
|
||||||
//configuration changed, erase
|
//configuration changed, erase
|
||||||
rb->sdfgi->erase();
|
rb->sdfgi->erase();
|
||||||
memdelete(rb->sdfgi);
|
memdelete(rb->sdfgi);
|
||||||
|
@ -303,7 +303,7 @@ void RendererSceneRenderRD::environment_glow_set_use_high_quality(bool p_enable)
|
||||||
glow_high_quality = p_enable;
|
glow_high_quality = p_enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RendererSceneRenderRD::environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
|
void RendererSceneRenderRD::environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
|
||||||
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
||||||
ERR_FAIL_COND(!env);
|
ERR_FAIL_COND(!env);
|
||||||
|
|
||||||
|
|
|
@ -1093,7 +1093,7 @@ public:
|
||||||
bool environment_is_ssr_enabled(RID p_env) const;
|
bool environment_is_ssr_enabled(RID p_env) const;
|
||||||
bool environment_is_sdfgi_enabled(RID p_env) const;
|
bool environment_is_sdfgi_enabled(RID p_env) const;
|
||||||
|
|
||||||
virtual void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override;
|
virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override;
|
||||||
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override;
|
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override;
|
||||||
virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override;
|
virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override;
|
||||||
virtual void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) override;
|
virtual void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) override;
|
||||||
|
|
|
@ -149,7 +149,7 @@ public:
|
||||||
virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
|
virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
|
||||||
virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
|
virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
|
||||||
|
|
||||||
virtual void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
|
virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
|
||||||
|
|
||||||
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0;
|
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0;
|
||||||
virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) = 0;
|
virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) = 0;
|
||||||
|
|
|
@ -1127,7 +1127,7 @@ public:
|
||||||
PASS2(environment_set_volumetric_fog_volume_size, int, int)
|
PASS2(environment_set_volumetric_fog_volume_size, int, int)
|
||||||
PASS1(environment_set_volumetric_fog_filter_active, bool)
|
PASS1(environment_set_volumetric_fog_filter_active, bool)
|
||||||
|
|
||||||
PASS11(environment_set_sdfgi, RID, bool, RS::EnvironmentSDFGICascades, float, RS::EnvironmentSDFGIYScale, bool, float, bool, float, float, float)
|
PASS11(environment_set_sdfgi, RID, bool, int, float, RS::EnvironmentSDFGIYScale, bool, float, bool, float, float, float)
|
||||||
PASS1(environment_set_sdfgi_ray_count, RS::EnvironmentSDFGIRayCount)
|
PASS1(environment_set_sdfgi_ray_count, RS::EnvironmentSDFGIRayCount)
|
||||||
PASS1(environment_set_sdfgi_frames_to_converge, RS::EnvironmentSDFGIFramesToConverge)
|
PASS1(environment_set_sdfgi_frames_to_converge, RS::EnvironmentSDFGIFramesToConverge)
|
||||||
PASS1(environment_set_sdfgi_frames_to_update_light, RS::EnvironmentSDFGIFramesToUpdateLight)
|
PASS1(environment_set_sdfgi_frames_to_update_light, RS::EnvironmentSDFGIFramesToUpdateLight)
|
||||||
|
|
|
@ -140,7 +140,7 @@ public:
|
||||||
virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
|
virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
|
||||||
virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
|
virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
|
||||||
|
|
||||||
virtual void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
|
virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
|
||||||
|
|
||||||
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0;
|
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0;
|
||||||
virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) = 0;
|
virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) = 0;
|
||||||
|
|
|
@ -643,7 +643,7 @@ public:
|
||||||
FUNC2(environment_set_volumetric_fog_volume_size, int, int)
|
FUNC2(environment_set_volumetric_fog_volume_size, int, int)
|
||||||
FUNC1(environment_set_volumetric_fog_filter_active, bool)
|
FUNC1(environment_set_volumetric_fog_filter_active, bool)
|
||||||
|
|
||||||
FUNC11(environment_set_sdfgi, RID, bool, EnvironmentSDFGICascades, float, EnvironmentSDFGIYScale, bool, float, bool, float, float, float)
|
FUNC11(environment_set_sdfgi, RID, bool, int, float, EnvironmentSDFGIYScale, bool, float, bool, float, float, float)
|
||||||
FUNC1(environment_set_sdfgi_ray_count, EnvironmentSDFGIRayCount)
|
FUNC1(environment_set_sdfgi_ray_count, EnvironmentSDFGIRayCount)
|
||||||
FUNC1(environment_set_sdfgi_frames_to_converge, EnvironmentSDFGIFramesToConverge)
|
FUNC1(environment_set_sdfgi_frames_to_converge, EnvironmentSDFGIFramesToConverge)
|
||||||
FUNC1(environment_set_sdfgi_frames_to_update_light, EnvironmentSDFGIFramesToUpdateLight)
|
FUNC1(environment_set_sdfgi_frames_to_update_light, EnvironmentSDFGIFramesToUpdateLight)
|
||||||
|
|
|
@ -2388,10 +2388,6 @@ void RenderingServer::_bind_methods() {
|
||||||
BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_HIGH);
|
BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_HIGH);
|
||||||
BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_ULTRA);
|
BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_ULTRA);
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(ENV_SDFGI_CASCADES_4);
|
|
||||||
BIND_ENUM_CONSTANT(ENV_SDFGI_CASCADES_6);
|
|
||||||
BIND_ENUM_CONSTANT(ENV_SDFGI_CASCADES_8);
|
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_DISABLED);
|
BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_DISABLED);
|
||||||
BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_75_PERCENT);
|
BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_75_PERCENT);
|
||||||
BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_50_PERCENT);
|
BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_50_PERCENT);
|
||||||
|
|
|
@ -1041,19 +1041,13 @@ public:
|
||||||
|
|
||||||
virtual void environment_set_ssil_quality(EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
|
virtual void environment_set_ssil_quality(EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
|
||||||
|
|
||||||
enum EnvironmentSDFGICascades {
|
|
||||||
ENV_SDFGI_CASCADES_4,
|
|
||||||
ENV_SDFGI_CASCADES_6,
|
|
||||||
ENV_SDFGI_CASCADES_8,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum EnvironmentSDFGIYScale {
|
enum EnvironmentSDFGIYScale {
|
||||||
ENV_SDFGI_Y_SCALE_DISABLED,
|
ENV_SDFGI_Y_SCALE_DISABLED,
|
||||||
ENV_SDFGI_Y_SCALE_75_PERCENT,
|
ENV_SDFGI_Y_SCALE_75_PERCENT,
|
||||||
ENV_SDFGI_Y_SCALE_50_PERCENT
|
ENV_SDFGI_Y_SCALE_50_PERCENT
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void environment_set_sdfgi(RID p_env, bool p_enable, EnvironmentSDFGICascades p_cascades, float p_min_cell_size, EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
|
virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
|
||||||
|
|
||||||
enum EnvironmentSDFGIRayCount {
|
enum EnvironmentSDFGIRayCount {
|
||||||
ENV_SDFGI_RAY_COUNT_4,
|
ENV_SDFGI_RAY_COUNT_4,
|
||||||
|
@ -1608,7 +1602,6 @@ VARIANT_ENUM_CAST(RenderingServer::EnvironmentToneMapper);
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSRRoughnessQuality);
|
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSRRoughnessQuality);
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSAOQuality);
|
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSAOQuality);
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSILQuality);
|
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSILQuality);
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGICascades);
|
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToConverge);
|
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToConverge);
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIRayCount);
|
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIRayCount);
|
||||||
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToUpdateLight);
|
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToUpdateLight);
|
||||||
|
|
Loading…
Reference in New Issue