Skip to content

Commit db8b25e

Browse files
committed
Merge pull request #113609 from Kaleb-Reid/sun-scatter-incremental
Check if sun scatter is enabled when using SKY_MODE_AUTOMATIC
2 parents f6cb714 + 05830df commit db8b25e

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

drivers/gles3/rasterizer_scene_gles3.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -683,8 +683,9 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons
683683
}
684684
}
685685

686+
bool sun_scatter_enabled = environment_get_fog_enabled(p_render_data->environment) && environment_get_fog_sun_scatter(p_render_data->environment) > 0.001;
686687
glBindBufferBase(GL_UNIFORM_BUFFER, SKY_DIRECTIONAL_LIGHT_UNIFORM_LOCATION, sky_globals.directional_light_buffer);
687-
if (shader_data->uses_light || (environment_get_fog_enabled(p_render_data->environment) && environment_get_fog_sun_scatter(p_render_data->environment) > 0.001)) {
688+
if (shader_data->uses_light || sun_scatter_enabled) {
688689
sky_globals.directional_light_count = 0;
689690
for (int i = 0; i < (int)p_lights.size(); i++) {
690691
GLES3::LightInstance *li = GLES3::LightStorage::get_singleton()->get_light_instance(p_lights[i]);
@@ -926,10 +927,12 @@ void RasterizerSceneGLES3::_update_sky_radiance(RID p_env, const Projection &p_p
926927
RS::SkyMode sky_mode = sky->mode;
927928

928929
if (sky_mode == RS::SKY_MODE_AUTOMATIC) {
930+
bool sun_scatter_enabled = environment_get_fog_enabled(p_env) && environment_get_fog_sun_scatter(p_env) > 0.001;
931+
929932
if ((shader_data->uses_time || shader_data->uses_position) && sky->radiance_size == 256) {
930933
update_single_frame = true;
931934
sky_mode = RS::SKY_MODE_REALTIME;
932-
} else if (shader_data->uses_light || shader_data->ubo_size > 0) {
935+
} else if (shader_data->uses_light || sun_scatter_enabled || shader_data->ubo_size > 0) {
933936
update_single_frame = false;
934937
sky_mode = RS::SKY_MODE_INCREMENTAL;
935938
} else {

servers/rendering/renderer_rd/environment/sky.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,8 +1024,9 @@ void SkyRD::setup_sky(const RenderDataRD *p_render_data, const Size2i p_screen_s
10241024
}
10251025
}
10261026

1027+
bool sun_scatter_enabled = RendererSceneRenderRD::get_singleton()->environment_get_fog_enabled(p_render_data->environment) && RendererSceneRenderRD::get_singleton()->environment_get_fog_sun_scatter(p_render_data->environment) > 0.001;
10271028
sky_scene_state.ubo.directional_light_count = 0;
1028-
if (shader_data->uses_light || (RendererSceneRenderRD::get_singleton()->environment_get_fog_enabled(p_render_data->environment) && RendererSceneRenderRD::get_singleton()->environment_get_fog_sun_scatter(p_render_data->environment) > 0.001)) {
1029+
if (shader_data->uses_light || sun_scatter_enabled) {
10291030
const PagedArray<RID> &lights = *p_render_data->lights;
10301031
// Run through the list of lights in the scene and pick out the Directional Lights.
10311032
// This can't be done in RenderSceneRenderRD::_setup lights because that needs to be called
@@ -1236,10 +1237,12 @@ void SkyRD::update_radiance_buffers(Ref<RenderSceneBuffersRD> p_render_buffers,
12361237
RS::SkyMode sky_mode = sky->mode;
12371238

12381239
if (sky_mode == RS::SKY_MODE_AUTOMATIC) {
1240+
bool sun_scatter_enabled = RendererSceneRenderRD::get_singleton()->environment_get_fog_enabled(p_env) && RendererSceneRenderRD::get_singleton()->environment_get_fog_sun_scatter(p_env) > 0.001;
1241+
12391242
if ((shader_data->uses_time || shader_data->uses_position) && sky->radiance_size == Sky::REAL_TIME_SIZE) {
12401243
update_single_frame = true;
12411244
sky_mode = RS::SKY_MODE_REALTIME;
1242-
} else if (shader_data->uses_light || shader_data->ubo_size > 0) {
1245+
} else if (shader_data->uses_light || sun_scatter_enabled || shader_data->ubo_size > 0) {
12431246
update_single_frame = false;
12441247
sky_mode = RS::SKY_MODE_INCREMENTAL;
12451248
} else {

0 commit comments

Comments
 (0)