You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Use half float precision buffer for 3D when HDR2D is enabled
This is necessary for Environment effects like Glow to work correctly.
This commit is contained in:
@@ -689,7 +689,9 @@ void RenderForwardClustered::_setup_environment(const RenderDataRD *p_render_dat
|
||||
}
|
||||
}
|
||||
|
||||
p_render_data->scene_data->update_ubo(scene_state.uniform_buffers[p_index], get_debug_draw_mode(), env, reflection_probe_instance, p_render_data->camera_attributes, p_pancake_shadows, p_screen_size, p_default_bg_color, _render_buffers_get_luminance_multiplier(), p_opaque_render_buffers, p_apply_alpha_multiplier);
|
||||
float luminance_multiplier = rd.is_valid() ? rd->get_luminance_multiplier() : 1.0;
|
||||
|
||||
p_render_data->scene_data->update_ubo(scene_state.uniform_buffers[p_index], get_debug_draw_mode(), env, reflection_probe_instance, p_render_data->camera_attributes, p_pancake_shadows, p_screen_size, p_default_bg_color, luminance_multiplier, p_opaque_render_buffers, p_apply_alpha_multiplier);
|
||||
|
||||
// now do implementation UBO
|
||||
|
||||
@@ -1434,7 +1436,7 @@ void RenderForwardClustered::_process_ssr(Ref<RenderSceneBuffersRD> p_render_buf
|
||||
|
||||
RENDER_TIMESTAMP("Process SSR");
|
||||
|
||||
ss_effects->ssr_allocate_buffers(p_render_buffers, rb_data->ss_effects_data.ssr, _render_buffers_get_color_format());
|
||||
ss_effects->ssr_allocate_buffers(p_render_buffers, rb_data->ss_effects_data.ssr, p_render_buffers->get_base_data_format());
|
||||
|
||||
Projection reprojections[RendererSceneRender::MAX_RENDER_VIEWS];
|
||||
|
||||
@@ -1946,7 +1948,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
|
||||
bool draw_sky = false;
|
||||
bool draw_sky_fog_only = false;
|
||||
// We invert luminance_multiplier for sky so that we can combine it with exposure value.
|
||||
float sky_luminance_multiplier = 1.0 / _render_buffers_get_luminance_multiplier();
|
||||
float sky_luminance_multiplier = 1.0 / rb->get_luminance_multiplier();
|
||||
float sky_brightness_multiplier = 1.0;
|
||||
|
||||
Color clear_color;
|
||||
@@ -2472,7 +2474,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
|
||||
} else if (using_taa) {
|
||||
RD::get_singleton()->draw_command_begin_label("TAA");
|
||||
RENDER_TIMESTAMP("TAA");
|
||||
taa->process(rb, _render_buffers_get_color_format(), p_render_data->scene_data->z_near, p_render_data->scene_data->z_far);
|
||||
taa->process(rb, rb->get_base_data_format(), p_render_data->scene_data->z_near, p_render_data->scene_data->z_far);
|
||||
RD::get_singleton()->draw_command_end_label();
|
||||
}
|
||||
}
|
||||
@@ -4505,7 +4507,7 @@ void RenderForwardClustered::_mesh_compile_pipelines_for_surface(const SurfacePi
|
||||
|
||||
// Retrieve from the scene shader which groups are currently enabled.
|
||||
const bool multiview_enabled = p_global.use_multiview && scene_shader.is_multiview_shader_group_enabled();
|
||||
const RD::DataFormat buffers_color_format = _render_buffers_get_color_format();
|
||||
const RD::DataFormat buffers_color_format = _render_buffers_get_preferred_color_format();
|
||||
const bool buffers_can_be_storage = _render_buffers_can_be_storage();
|
||||
|
||||
// Set the attributes common to all pipelines.
|
||||
|
||||
Reference in New Issue
Block a user