You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Cleanup and improve sky render
This commit is contained in:
@@ -2930,7 +2930,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
|
||||
|
||||
scene_render->set_scene_pass(render_pass);
|
||||
|
||||
if (p_render_buffers.is_valid()) {
|
||||
if (p_render_buffers.is_valid() && p_reflection_probe.is_null()) {
|
||||
//no rendering code here, this is only to set up what needs to be done, request regions, etc.
|
||||
scene_render->sdfgi_update(p_render_buffers, p_environment, p_camera_data->main_transform.origin); //update conditions for SDFGI (whether its used or not)
|
||||
}
|
||||
@@ -3012,7 +3012,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
|
||||
{ //sdfgi
|
||||
cull.sdfgi.region_count = 0;
|
||||
|
||||
if (p_render_buffers.is_valid()) {
|
||||
if (p_render_buffers.is_valid() && p_reflection_probe.is_null()) {
|
||||
cull.sdfgi.cascade_light_count = 0;
|
||||
|
||||
uint32_t prev_cascade = 0xFFFFFFFF;
|
||||
@@ -3214,6 +3214,8 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
|
||||
//render SDFGI
|
||||
|
||||
{
|
||||
// Q: Should this whole block be skipped if we're rendering our reflection probe?
|
||||
|
||||
sdfgi_update_data.update_static = false;
|
||||
|
||||
if (cull.sdfgi.region_count > 0) {
|
||||
@@ -3239,7 +3241,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
|
||||
}
|
||||
}
|
||||
|
||||
if (p_render_buffers.is_valid()) {
|
||||
if (p_render_buffers.is_valid() && p_reflection_probe.is_null()) {
|
||||
sdfgi_update_data.directional_lights = &directional_lights;
|
||||
sdfgi_update_data.positional_light_instances = scenario->dynamic_lights.ptr();
|
||||
sdfgi_update_data.positional_light_count = scenario->dynamic_lights.size();
|
||||
@@ -3392,7 +3394,7 @@ bool RendererSceneCull::_render_reflection_probe_step(Instance *p_instance, int
|
||||
RendererSceneRender::CameraData camera_data;
|
||||
camera_data.set_camera(xform, cm, false, false);
|
||||
|
||||
Ref<RenderSceneBuffers> render_buffers;
|
||||
Ref<RenderSceneBuffers> render_buffers = RSG::light_storage->reflection_probe_atlas_get_render_buffers(scenario->reflection_atlas);
|
||||
_render_scene(&camera_data, render_buffers, environment, 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);
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user