Skip to content

Commit de2aa1b

Browse files
committed
Fix: Ensure sky orientation is set when reflection uses sky
1 parent d7bdc0b commit de2aa1b

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,6 @@ void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p
181181
ubo.ambient_light_color_energy[1] = color.g * energy;
182182
ubo.ambient_light_color_energy[2] = color.b * energy;
183183

184-
Basis sky_transform = render_scene_render->environment_get_sky_orientation(p_env);
185-
sky_transform = sky_transform.inverse() * cam_transform.basis;
186-
RendererRD::MaterialStorage::store_transform_3x3(sky_transform, ubo.radiance_inverse_xform);
187-
188184
bool use_ambient_cubemap = (ambient_src == RS::ENV_AMBIENT_SOURCE_BG && env_bg == RS::ENV_BG_SKY) || ambient_src == RS::ENV_AMBIENT_SOURCE_SKY;
189185
bool use_ambient_light = use_ambient_cubemap || ambient_src == RS::ENV_AMBIENT_SOURCE_COLOR;
190186
ubo.flags |= use_ambient_cubemap ? SCENE_DATA_FLAGS_USE_AMBIENT_CUBEMAP : 0;
@@ -197,6 +193,12 @@ void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p
197193
ubo.flags |= SCENE_DATA_FLAGS_USE_REFLECTION_CUBEMAP;
198194
}
199195

196+
if ((ubo.flags & SCENE_DATA_FLAGS_USE_AMBIENT_CUBEMAP) || (ubo.flags & SCENE_DATA_FLAGS_USE_REFLECTION_CUBEMAP)) {
197+
Basis sky_transform = render_scene_render->environment_get_sky_orientation(p_env);
198+
sky_transform = sky_transform.inverse() * cam_transform.basis;
199+
RendererRD::MaterialStorage::store_transform_3x3(sky_transform, ubo.radiance_inverse_xform);
200+
}
201+
200202
ubo.flags |= render_scene_render->environment_get_fog_enabled(p_env) ? SCENE_DATA_FLAGS_USE_FOG : 0;
201203
ubo.fog_density = render_scene_render->environment_get_fog_density(p_env);
202204
ubo.fog_height = render_scene_render->environment_get_fog_height(p_env);

0 commit comments

Comments
 (0)