@@ -2734,6 +2734,7 @@ void RendererSceneCull::render_camera(const Ref<RenderSceneBuffers> &p_render_bu
2734
2734
Projection projection;
2735
2735
bool vaspect = camera->vaspect ;
2736
2736
bool is_orthogonal = false ;
2737
+ bool is_frustum = false ;
2737
2738
2738
2739
switch (camera->type ) {
2739
2740
case Camera::ORTHOGONAL: {
@@ -2762,10 +2763,11 @@ void RendererSceneCull::render_camera(const Ref<RenderSceneBuffers> &p_render_bu
2762
2763
camera->znear ,
2763
2764
camera->zfar ,
2764
2765
camera->vaspect );
2766
+ is_frustum = true ;
2765
2767
} break ;
2766
2768
}
2767
2769
2768
- camera_data.set_camera (transform, projection, is_orthogonal, vaspect, jitter, taa_frame_count, camera->visible_layers );
2770
+ camera_data.set_camera (transform, projection, is_orthogonal, is_frustum, vaspect, jitter, taa_frame_count, camera->visible_layers );
2769
2771
} else {
2770
2772
// Setup our camera for our XR interface.
2771
2773
// We can support multiple views here each with their own camera
@@ -2787,9 +2789,9 @@ void RendererSceneCull::render_camera(const Ref<RenderSceneBuffers> &p_render_bu
2787
2789
}
2788
2790
2789
2791
if (view_count == 1 ) {
2790
- camera_data.set_camera (transforms[0 ], projections[0 ], false , camera->vaspect , jitter, p_jitter_phase_count, camera->visible_layers );
2792
+ camera_data.set_camera (transforms[0 ], projections[0 ], false , false , camera->vaspect , jitter, p_jitter_phase_count, camera->visible_layers );
2791
2793
} else if (view_count == 2 ) {
2792
- camera_data.set_multiview_camera (view_count, transforms, projections, false , camera->vaspect );
2794
+ camera_data.set_multiview_camera (view_count, transforms, projections, false , false , camera->vaspect );
2793
2795
} else {
2794
2796
// this won't be called (see fail check above) but keeping this comment to indicate we may support more then 2 views in the future...
2795
2797
}
@@ -3633,7 +3635,7 @@ void RendererSceneCull::render_empty_scene(const Ref<RenderSceneBuffers> &p_rend
3633
3635
RENDER_TIMESTAMP (" Render Empty 3D Scene" );
3634
3636
3635
3637
RendererSceneRender::CameraData camera_data;
3636
- camera_data.set_camera (Transform3D (), Projection (), true , false );
3638
+ camera_data.set_camera (Transform3D (), Projection (), true , false , false );
3637
3639
3638
3640
scene_render->render_scene (p_render_buffers, &camera_data, &camera_data, PagedArray<RenderGeometryInstance *>(), PagedArray<RID>(), PagedArray<RID>(), PagedArray<RID>(), PagedArray<RID>(), PagedArray<RID>(), PagedArray<RID>(), environment, RID (), compositor, p_shadow_atlas, RID (), scenario->reflection_atlas , RID (), 0 , 0 , nullptr , 0 , nullptr , 0 , nullptr );
3639
3641
#endif
@@ -3711,7 +3713,7 @@ bool RendererSceneCull::_render_reflection_probe_step(Instance *p_instance, int
3711
3713
3712
3714
RENDER_TIMESTAMP (" Render ReflectionProbe, Step " + itos (p_step));
3713
3715
RendererSceneRender::CameraData camera_data;
3714
- camera_data.set_camera (xform, cm, false , false );
3716
+ camera_data.set_camera (xform, cm, false , false , false );
3715
3717
3716
3718
Ref<RenderSceneBuffers> render_buffers = RSG::light_storage->reflection_probe_atlas_get_render_buffers (scenario->reflection_atlas );
3717
3719
_render_scene (&camera_data, render_buffers, environment, RID (), RID (), RSG::light_storage->reflection_probe_get_cull_mask (p_instance->base ), p_instance->scenario ->self , RID (), shadow_atlas, reflection_probe->instance , p_step, mesh_lod_threshold, use_shadows);
0 commit comments