From 24be211acc91ca581c391b39d9149a4b740a21da Mon Sep 17 00:00:00 2001 From: ternaryop8479 Date: Wed, 11 Feb 2026 22:25:26 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"fix&feat=EF=BC=9A=E4=BF=AE=E5=A4=8Dsp?= =?UTF-8?q?p=E8=BF=87=E9=AB=98=E4=BC=9A=E5=B4=A9=E6=BA=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=9D=87=E5=80=BC=E6=BB=A4?= =?UTF-8?q?=E6=B3=A2=E5=8A=9F=E8=83=BD"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit bc4ec55b95adc520ae7196685ab5d4cd35708fce. 修复单次spp过高导致崩溃问题时引入了多帧累积失效问题,故进行一次回滚。 --- examples/cornell_box | Bin 422584 -> 409872 bytes examples/cornell_box.cpp | 6 +-- include/core/denoiser.h | 69 ------------------------- include/core/renderer.h | 2 - include/core/shader_manager.h | 5 -- shaders/denoiser.comp | 24 --------- shaders/raytracing.comp | 28 +++++----- src/core/denoiser.cpp | 93 ---------------------------------- src/core/raytracer.cpp | 46 +++-------------- src/core/renderer.cpp | 33 +++--------- src/core/shader_manager.cpp | 10 ---- 11 files changed, 31 insertions(+), 285 deletions(-) delete mode 100644 include/core/denoiser.h delete mode 100644 shaders/denoiser.comp delete mode 100644 src/core/denoiser.cpp diff --git a/examples/cornell_box b/examples/cornell_box index 96dd06dc4969d941dd7478135ad2a2f8d2cfd169..c498fdba72caf9a848feeb9ba224c93916b6df81 100644 GIT binary patch delta 127493 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�% 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 WA;f#NQ@){zW{EXL1j8@tvVQ=2vnfje delta 134160 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 if (!g_renderer->initialize()) { diff --git a/include/core/denoiser.h b/include/core/denoiser.h deleted file mode 100644 index 50ad16b..0000000 --- a/include/core/denoiser.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef ARE_INCLUDE_CORE_DENOISER_H -#define ARE_INCLUDE_CORE_DENOISER_H - -#include "basic/types.h" -#include "resource/shader.h" -#include - -namespace are { - -/** - * @brief Mean filter denoiser using compute shader - */ -class Denoiser { -public: - /** - * @brief Construct denoiser - * @param width Output width - * @param height Output height - */ - Denoiser(uint width, uint height); - - /** - * @brief Destroy denoiser - */ - ~Denoiser(); - - /** - * @brief Initialize GPU resources - * @param shader Denoise compute shader (managed by ShaderManager) - * @return True on success - */ - bool initialize(const std::shared_ptr& shader); - - /** - * @brief Release GPU resources - */ - void release(); - - /** - * @brief Resize internal targets - * @param width New width - * @param height New height - */ - void resize(uint width, uint height); - - /** - * @brief Apply mean filter - * @param input_texture RGBA32F input texture - * @param radius Filter radius (1 => 3x3) - * @return Output texture handle (internal) - */ - TextureHandle denoise(TextureHandle input_texture, int radius); - -private: - uint width_; - uint height_; - std::shared_ptr shader_; - TextureHandle output_texture_; - bool initialized_; - - /** - * @brief Create output texture - */ - void create_output_texture_(); -}; - -} // namespace are - -#endif // ARE_INCLUDE_CORE_DENOISER_H diff --git a/include/core/renderer.h b/include/core/renderer.h index a9be406..b0b29b6 100644 --- a/include/core/renderer.h +++ b/include/core/renderer.h @@ -7,7 +7,6 @@ #include "core/raytracer.h" #include "core/screen_blit.h" #include "core/shader_manager.h" -#include "core/denoiser.h" #include namespace are { @@ -67,7 +66,6 @@ private: std::unique_ptr raytracer_; std::unique_ptr shader_manager_; std::unique_ptr screen_blit_; - std::unique_ptr denoiser_; bool initialized_; uint frame_count_; diff --git a/include/core/shader_manager.h b/include/core/shader_manager.h index 2d8a19c..c48665a 100644 --- a/include/core/shader_manager.h +++ b/include/core/shader_manager.h @@ -54,15 +54,10 @@ public: /// @return Ray tracing shader const std::shared_ptr& get_raytracing_shader() const { return raytracing_shader_; } - /// @brief Get mean denoise compute shader - /// @return Denoise shader (nullptr if not loaded) - const std::shared_ptr& get_denoise_shader() const { return denoise_shader_; } - private: std::unordered_map> shader_cache_; std::shared_ptr gbuffer_shader_; std::shared_ptr raytracing_shader_; - std::shared_ptr denoise_shader_; bool initialized_; diff --git a/shaders/denoiser.comp b/shaders/denoiser.comp deleted file mode 100644 index adb3a9a..0000000 --- a/shaders/denoiser.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 430 core - -layout(local_size_x = 16, local_size_y = 16) in; - -layout(binding = 0, rgba32f) uniform readonly image2D u_input; -layout(binding = 1, rgba32f) uniform writeonly image2D u_output; - -// uniform int u_radius; // 已经不需要了,但保留定义以防外部报错 - -void main() { - ivec2 p = ivec2(gl_GlobalInvocationID.xy); - ivec2 size = imageSize(u_output); - - // 边界检查:如果像素超出范围,直接返回 - if (p.x >= size.x || p.y >= size.y) return; - - // 【修改点】: - // 1. 不再使用循环去遍历周围的像素 (dy, dx)。 - // 2. 直接读取当前位置 (p) 的颜色。 - vec3 original_color = imageLoad(u_input, p).rgb; - - // 直接写入输出图像,不做任何平均计算 - imageStore(u_output, p, vec4(original_color, 1.0)); -} diff --git a/shaders/raytracing.comp b/shaders/raytracing.comp index 3f094fd..a34c5eb 100644 --- a/shaders/raytracing.comp +++ b/shaders/raytracing.comp @@ -603,18 +603,22 @@ void main() { uint base_seed = uint(pixel_coords.x) + uint(pixel_coords.y) * uint(image_size.x); uint seed = base_seed + u_frame_count * 719393u; - vec3 sample_color = trace_path_primary_gbuffer(pixel_coords, image_size, seed); - sample_color = clamp(sample_color, vec3(0.0), vec3(10.0)); + vec3 color = vec3(0.0); + uint spp = max(u_samples_per_pixel, 1u); - if (u_enable_accumulation) { - vec3 sum = imageLoad(accumulation_image, pixel_coords).rgb; - sum += sample_color; - imageStore(accumulation_image, pixel_coords, vec4(sum, 1.0)); + for (uint s = 0u; s < spp; ++s) { + color += trace_path_primary_gbuffer(pixel_coords, image_size, seed); + } + color /= float(spp); - float inv_n = 1.0 / float(u_frame_count + 1u); // u_frame_count is "sample index" - vec3 avg = sum * inv_n; - imageStore(output_image, pixel_coords, vec4(avg, 1.0)); - } else { - imageStore(output_image, pixel_coords, vec4(sample_color, 1.0)); - } + color = clamp(color, vec3(0.0), vec3(10.0)); + + if (u_enable_accumulation && u_frame_count > 0u) { + vec3 accumulated = imageLoad(accumulation_image, pixel_coords).rgb; + float w = 1.0 / float(u_frame_count + 1u); + color = mix(accumulated, color, w); + } + + imageStore(accumulation_image, pixel_coords, vec4(color, 1.0)); + imageStore(output_image, pixel_coords, vec4(color, 1.0)); } diff --git a/src/core/denoiser.cpp b/src/core/denoiser.cpp deleted file mode 100644 index d96326d..0000000 --- a/src/core/denoiser.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "core/denoiser.h" -#include "basic/constants.h" -#include "utils/logger.h" -#include - -namespace are { - -Denoiser::Denoiser(uint width, uint height) - : width_(width) - , height_(height) - , output_texture_(INVALID_HANDLE) - , initialized_(false) { -} - -Denoiser::~Denoiser() { - release(); -} - -bool Denoiser::initialize(const std::shared_ptr& shader) { - if (initialized_) return true; - - if (!shader || !shader->is_valid()) { - Logger::error("Invalid denoise shader"); - return false; - } - - shader_ = shader; - create_output_texture_(); - - initialized_ = true; - Logger::info("Denoiser initialized"); - return true; -} - -void Denoiser::release() { - if (!initialized_) return; - - shader_.reset(); - - if (output_texture_ != INVALID_HANDLE) { - glDeleteTextures(1, &output_texture_); - output_texture_ = INVALID_HANDLE; - } - - initialized_ = false; -} - -void Denoiser::resize(uint width, uint height) { - if (width == width_ && height == height_) return; - width_ = width; - height_ = height; - - if (!initialized_) return; - - if (output_texture_ != INVALID_HANDLE) { - glDeleteTextures(1, &output_texture_); - output_texture_ = INVALID_HANDLE; - } - create_output_texture_(); -} - -TextureHandle Denoiser::denoise(TextureHandle input_texture, int radius) { - if (!initialized_) return input_texture; - - radius = (radius < 0) ? 0 : radius; - - shader_->use(); - - glBindImageTexture(0, input_texture, 0, GL_FALSE, 0, GL_READ_ONLY, GL_RGBA32F); - glBindImageTexture(1, output_texture_, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F); - - shader_->set_int("u_radius", radius); - - uint groups_x = (width_ + COMPUTE_GROUP_SIZE_X - 1) / COMPUTE_GROUP_SIZE_X; - uint groups_y = (height_ + COMPUTE_GROUP_SIZE_Y - 1) / COMPUTE_GROUP_SIZE_Y; - glDispatchCompute(groups_x, groups_y, 1); - - glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT); - - return output_texture_; -} - -void Denoiser::create_output_texture_() { - glGenTextures(1, &output_texture_); - glBindTexture(GL_TEXTURE_2D, output_texture_); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width_, height_, 0, GL_RGBA, GL_FLOAT, nullptr); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -} - -} // namespace are diff --git a/src/core/raytracer.cpp b/src/core/raytracer.cpp index 92c08bf..8568a99 100644 --- a/src/core/raytracer.cpp +++ b/src/core/raytracer.cpp @@ -184,48 +184,14 @@ void RayTracer::trace(const Scene &scene, const GBuffer &gbuffer, TextureHandle uint num_groups_x = (width_ + COMPUTE_GROUP_SIZE_X - 1) / COMPUTE_GROUP_SIZE_X; uint num_groups_y = (height_ + COMPUTE_GROUP_SIZE_Y - 1) / COMPUTE_GROUP_SIZE_Y; - const uint spp = std::max(config_.samples_per_pixel_, 1u); + glDispatchCompute(num_groups_x, num_groups_y, 1); - // We interpret frame_count_ as "accumulated sample count" - for (uint i = 0; i < spp; ++i) { - compute_shader_->use(); + // Memory barrier + glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT); - // Bind G-Buffer textures - bind_gbuffer_(gbuffer); - - // Bind output and accumulation textures - glBindImageTexture(3, output_texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F); - glBindImageTexture(4, accumulation_texture_, 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA32F); - - // Bind BVH buffers if enabled - if (config_.use_bvh_ && bvh_built_) { - bvh_node_buffer_.bind_base(2); - bvh_triangle_buffer_.bind_base(3); - compute_shader_->set_bool("u_use_bvh", true); - compute_shader_->set_uint("u_bvh_node_count", bvh_->get_node_count()); - } else { - compute_shader_->set_bool("u_use_bvh", false); - compute_shader_->set_uint("u_bvh_node_count", 0u); - } - - // Set uniforms (u_frame_count is sample index) - compute_shader_->set_uint("u_frame_count", frame_count_); - compute_shader_->set_uint("u_samples_per_pixel", 1u); // shader does 1 sample per dispatch now - compute_shader_->set_uint("u_max_depth", config_.max_depth_); - compute_shader_->set_uint("u_light_count", static_cast(scene.get_lights().size())); - compute_shader_->set_bool("u_enable_accumulation", config_.enable_accumulation_); - - // Camera - const Camera& camera = scene.get_camera(); - Mat4 inv_vp = glm::inverse(camera.get_view_projection_matrix()); - compute_shader_->set_mat4("u_inv_view_projection", inv_vp); - - glDispatchCompute(num_groups_x, num_groups_y, 1); - glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT); - - if (config_.enable_accumulation_) { - frame_count_++; - } + // Increment frame count for accumulation + if (config_.enable_accumulation_) { + frame_count_++; } } diff --git a/src/core/renderer.cpp b/src/core/renderer.cpp index 021024c..bb1d2ec 100644 --- a/src/core/renderer.cpp +++ b/src/core/renderer.cpp @@ -66,15 +66,7 @@ bool Renderer::initialize() { Logger::error("Failed to initialize screen blit"); return false; } - - // Initialize denoiser - denoiser_ = std::make_unique(config_.width_, config_.height_); - const auto& denoise_shader = shader_manager_->get_denoise_shader(); - if (!denoiser_->initialize(denoise_shader)) { - Logger::error("Failed to initialize denoiser"); - return false; - } - + initialized_ = true; Logger::info("Aurora Rendering Engine initialized successfully"); return true; @@ -106,11 +98,6 @@ void Renderer::shutdown() { shader_manager_.reset(); } - if(denoiser_) { - denoiser_->release(); - denoiser_.reset(); - } - initialized_ = false; Logger::info("Aurora Rendering Engine shut down"); } @@ -161,18 +148,11 @@ RenderStats Renderer::render(const Scene& scene, TextureHandle output_texture) { auto raytrace_end = std::chrono::high_resolution_clock::now(); stats.raytrace_time_ms_ = std::chrono::duration(raytrace_end - raytrace_start).count(); - // Phase 3: Denoise texture - TextureHandle final_output = rt_output; - - if (denoiser_) { - final_output = denoiser_->denoise(rt_output, 1); // radius=1 => 3x3 - } - - // Phase 4: Blit to screen if output is default framebuffer - if (created_temp_texture && output_texture == 0) { - screen_blit_->blit_fullscreen(final_output); - glDeleteTextures(1, &rt_output); - } + // Phase 3: Blit to screen if output is default framebuffer + if (created_temp_texture && output_texture == 0) { + screen_blit_->blit_fullscreen(rt_output); + glDeleteTextures(1, &rt_output); + } // Calculate total frame time auto end_time = std::chrono::high_resolution_clock::now(); @@ -202,7 +182,6 @@ void Renderer::resize(uint width, uint height) { if (initialized_) { gbuffer_->resize(width, height); raytracer_->resize(width, height); - denoiser_->resize(width, height); Logger::info("Renderer resized to " + std::to_string(width) + "x" + std::to_string(height)); } diff --git a/src/core/shader_manager.cpp b/src/core/shader_manager.cpp index f18c0d9..6c9c48f 100644 --- a/src/core/shader_manager.cpp +++ b/src/core/shader_manager.cpp @@ -39,7 +39,6 @@ void ShaderManager::release() { gbuffer_shader_.reset(); raytracing_shader_.reset(); - denoise_shader_.reset(); initialized_ = false; Logger::info("ShaderManager released"); @@ -109,15 +108,6 @@ bool ShaderManager::load_builtin_shaders_() { shader_cache_["raytracing"] = raytracing_shader_; Logger::info("Ray tracing shader loaded successfully"); - Logger::info("Loading denoise compute shader..."); - denoise_shader_ = std::make_shared(); - if (!denoise_shader_->load_compute("shaders/denoiser.comp")) { - Logger::error("Failed to load denoise shader"); - return false; - } - shader_cache_["denoise"] = denoise_shader_; - Logger::info("Denoise shader loaded successfully"); - return true; }