You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Splitting tonemapper into its own class
This commit is contained in:
@@ -2486,7 +2486,7 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende
|
||||
{
|
||||
RD::get_singleton()->draw_command_begin_label("Tonemap");
|
||||
|
||||
EffectsRD::TonemapSettings tonemap;
|
||||
RendererRD::ToneMapper::TonemapSettings tonemap;
|
||||
|
||||
if (can_use_effects && env && env->auto_exposure && rb->luminance.current.is_valid()) {
|
||||
tonemap.use_auto_exposure = true;
|
||||
@@ -2498,7 +2498,7 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende
|
||||
|
||||
if (can_use_effects && env && env->glow_enabled) {
|
||||
tonemap.use_glow = true;
|
||||
tonemap.glow_mode = EffectsRD::TonemapSettings::GlowMode(env->glow_blend_mode);
|
||||
tonemap.glow_mode = RendererRD::ToneMapper::TonemapSettings::GlowMode(env->glow_blend_mode);
|
||||
tonemap.glow_intensity = env->glow_blend_mode == RS::ENV_GLOW_BLEND_MODE_MIX ? env->glow_mix : env->glow_intensity;
|
||||
for (int i = 0; i < RS::MAX_GLOW_LEVELS; i++) {
|
||||
tonemap.glow_levels[i] = env->glow_levels[i];
|
||||
@@ -2556,7 +2556,7 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende
|
||||
tonemap.luminance_multiplier = _render_buffers_get_luminance_multiplier();
|
||||
tonemap.view_count = p_render_data->view_count;
|
||||
|
||||
storage->get_effects()->tonemapper(rb->internal_texture, texture_storage->render_target_get_rd_framebuffer(rb->render_target), tonemap);
|
||||
tone_mapper->tonemapper(rb->internal_texture, texture_storage->render_target_get_rd_framebuffer(rb->render_target), tonemap);
|
||||
|
||||
RD::get_singleton()->draw_command_end_label();
|
||||
}
|
||||
@@ -2587,7 +2587,7 @@ void RendererSceneRenderRD::_post_process_subpass(RID p_source_texture, RID p_fr
|
||||
|
||||
RD::DrawListID draw_list = RD::get_singleton()->draw_list_switch_to_next_pass();
|
||||
|
||||
EffectsRD::TonemapSettings tonemap;
|
||||
RendererRD::ToneMapper::TonemapSettings tonemap;
|
||||
|
||||
if (env) {
|
||||
tonemap.tonemap_mode = env->tone_mapper;
|
||||
@@ -2637,7 +2637,7 @@ void RendererSceneRenderRD::_post_process_subpass(RID p_source_texture, RID p_fr
|
||||
tonemap.luminance_multiplier = _render_buffers_get_luminance_multiplier();
|
||||
tonemap.view_count = p_render_data->view_count;
|
||||
|
||||
storage->get_effects()->tonemapper(draw_list, p_source_texture, RD::get_singleton()->framebuffer_get_format(p_framebuffer), tonemap);
|
||||
tone_mapper->tonemapper(draw_list, p_source_texture, RD::get_singleton()->framebuffer_get_format(p_framebuffer), tonemap);
|
||||
|
||||
RD::get_singleton()->draw_command_end_label();
|
||||
}
|
||||
@@ -5838,11 +5838,17 @@ void fog() {
|
||||
light_projectors_set_filter(RS::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter"))));
|
||||
|
||||
cull_argument.set_page_pool(&cull_argument_pool);
|
||||
|
||||
tone_mapper = memnew(RendererRD::ToneMapper);
|
||||
}
|
||||
|
||||
RendererSceneRenderRD::~RendererSceneRenderRD() {
|
||||
RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton();
|
||||
|
||||
if (tone_mapper) {
|
||||
memdelete(tone_mapper);
|
||||
}
|
||||
|
||||
for (const KeyValue<int, ShadowCubemap> &E : shadow_cubemaps) {
|
||||
RD::get_singleton()->free(E.value.cubemap);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user