From 8173f43770e9d83e67cd3488d506c85330a95c2d Mon Sep 17 00:00:00 2001 From: Kaleb Reid <78945904+Kaleb-Reid@users.noreply.github.com> Date: Sun, 12 Oct 2025 23:21:21 -0700 Subject: [PATCH] Apply luminance multiplier in copy_cubemap_to_panorama --- servers/rendering/renderer_rd/effects/copy_effects.cpp | 2 ++ servers/rendering/renderer_rd/effects/copy_effects.h | 2 +- servers/rendering/renderer_rd/shaders/effects/copy.glsl | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/servers/rendering/renderer_rd/effects/copy_effects.cpp b/servers/rendering/renderer_rd/effects/copy_effects.cpp index 69ccb24ecfa..693bba0e03a 100644 --- a/servers/rendering/renderer_rd/effects/copy_effects.cpp +++ b/servers/rendering/renderer_rd/effects/copy_effects.cpp @@ -401,6 +401,8 @@ void CopyEffects::copy_cubemap_to_panorama(RID p_source_cube, RID p_dest_panoram copy.push_constant.target[1] = 0; copy.push_constant.camera_z_far = p_lod; + copy.push_constant.luminance_multiplier = prefer_raster_effects ? 2.0 : 1.0; + // setup our uniforms RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); diff --git a/servers/rendering/renderer_rd/effects/copy_effects.h b/servers/rendering/renderer_rd/effects/copy_effects.h index 0f220b28936..c753ff4a0ae 100644 --- a/servers/rendering/renderer_rd/effects/copy_effects.h +++ b/servers/rendering/renderer_rd/effects/copy_effects.h @@ -138,7 +138,7 @@ private: int32_t section[4]; int32_t target[2]; uint32_t flags; - uint32_t pad; + float luminance_multiplier; // Glow. float glow_strength; float glow_bloom; diff --git a/servers/rendering/renderer_rd/shaders/effects/copy.glsl b/servers/rendering/renderer_rd/shaders/effects/copy.glsl index debf6b73673..fa8e0590fc9 100644 --- a/servers/rendering/renderer_rd/shaders/effects/copy.glsl +++ b/servers/rendering/renderer_rd/shaders/effects/copy.glsl @@ -20,7 +20,7 @@ layout(push_constant, std430) uniform Params { ivec4 section; ivec2 target; uint flags; - uint pad; + float luminance_multiplier; // Glow. float glow_strength; float glow_bloom; @@ -276,7 +276,7 @@ void main() { #else vec4 color = textureLod(source_color, vec4(normal, params.camera_z_far), 0.0); //the biggest the lod the least the acne #endif - imageStore(dest_buffer, pos + params.target, color); + imageStore(dest_buffer, pos + params.target, color * params.luminance_multiplier); #endif // defined(MODE_CUBEMAP_TO_PANORAMA) || defined(MODE_CUBEMAP_ARRAY_TO_PANORAMA) #ifdef MODE_SET_COLOR