@@ -1187,6 +1187,17 @@ void SkyRD::setup_sky(const RenderDataRD *p_render_data, const Size2i p_screen_s
11871187 projection[2 ].y = -projection[2 ].y ;
11881188 }
11891189
1190+ float custom_fov = RendererSceneRenderRD::get_singleton ()->environment_get_sky_custom_fov (p_render_data->environment );
1191+
1192+ if (custom_fov && sky_scene_state.view_count == 1 ) {
1193+ // With custom fov we don't support stereo...
1194+ float near_plane = projection.get_z_near ();
1195+ float far_plane = projection.get_z_far ();
1196+ float aspect = projection.get_aspect ();
1197+
1198+ projection.set_perspective (custom_fov, aspect, near_plane, far_plane);
1199+ }
1200+
11901201 sky_scene_state.cam_projection = correction * projection;
11911202
11921203 // Our info in our UBO is only used if we're rendering stereo.
@@ -1450,20 +1461,9 @@ void SkyRD::update_res_buffers(Ref<RenderSceneBuffersRD> p_render_buffers, RID p
14501461 Basis sky_transform = RendererSceneRenderRD::get_singleton ()->environment_get_sky_orientation (p_env);
14511462 sky_transform.invert ();
14521463
1453- float custom_fov = RendererSceneRenderRD::get_singleton ()->environment_get_sky_custom_fov (p_env);
1454-
14551464 // Camera
14561465 Projection projection = sky_scene_state.cam_projection ;
14571466
1458- if (custom_fov && sky_scene_state.view_count == 1 ) {
1459- // With custom fov we don't support stereo...
1460- float near_plane = projection.get_z_near ();
1461- float far_plane = projection.get_z_far ();
1462- float aspect = projection.get_aspect ();
1463-
1464- projection.set_perspective (custom_fov, aspect, near_plane, far_plane);
1465- }
1466-
14671467 sky_transform = sky_transform * sky_scene_state.cam_transform .basis ;
14681468
14691469 if (shader_data->uses_quarter_res ) {
@@ -1551,20 +1551,9 @@ void SkyRD::draw_sky(RD::DrawListID p_draw_list, Ref<RenderSceneBuffersRD> p_ren
15511551 Basis sky_transform = RendererSceneRenderRD::get_singleton ()->environment_get_sky_orientation (p_env);
15521552 sky_transform.invert ();
15531553
1554- float custom_fov = RendererSceneRenderRD::get_singleton ()->environment_get_sky_custom_fov (p_env);
1555-
15561554 // Camera
15571555 Projection projection = sky_scene_state.cam_projection ;
15581556
1559- if (custom_fov && sky_scene_state.view_count == 1 ) {
1560- // With custom fov we don't support stereo...
1561- float near_plane = projection.get_z_near ();
1562- float far_plane = projection.get_z_far ();
1563- float aspect = projection.get_aspect ();
1564-
1565- projection.set_perspective (custom_fov, aspect, near_plane, far_plane);
1566- }
1567-
15681557 sky_transform = sky_transform * sky_scene_state.cam_transform .basis ;
15691558
15701559 PipelineCacheRD *pipeline = &shader_data->pipelines [sky_scene_state.view_count > 1 ? SKY_VERSION_BACKGROUND_MULTIVIEW : SKY_VERSION_BACKGROUND];
0 commit comments