hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/engine/engine.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-22 04:48:42 +0200
committerhachem <im@hachem.wtf>2025-08-22 04:48:42 +0200
commit77717ae7c4f7c8f180e5c5e24cf1098c02f3dbf4 (patch)
tree61ef3218a5e1f46e13b10cea3141f2eeee81bd7c /src/engine/engine.h
parent2dd07499241638e66ee0df97cba91219f5599151 (diff)
feat: add bloom and blur
Diffstat (limited to 'src/engine/engine.h')
-rw-r--r--src/engine/engine.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/engine/engine.h b/src/engine/engine.h
index 524f1a7..95cd1f0 100644
--- a/src/engine/engine.h
+++ b/src/engine/engine.h
@@ -66,6 +66,7 @@ namespace Donut
~Engine() = default;
void draw_full_screen_quad();
+ void draw_blur_pass();
void dispatch_compute(const Camera& cam);
void upload_camera_ubo(const Camera& cam);
void upload_objects_ubo(const std::vector<ObjectData>& objs);
@@ -109,6 +110,12 @@ namespace Donut
float get_rotation_speed() const { return m_rotation_speed; }
void set_rotation_speed(float speed) { m_rotation_speed = speed; }
+ float get_blur_strength() const { return m_blur_strength; }
+ void set_blur_strength(float strength) { m_blur_strength = strength; }
+
+ float get_glow_intensity() const { return m_glow_intensity; }
+ void set_glow_intensity(float intensity) { m_glow_intensity = intensity; }
+
void load_objects_from_scene(const std::vector<Donut::Object>& objects);
void export_high_res_frame(const std::string& filename, int width = 4096, int height = 3072);
void print_object_info() const;
@@ -120,6 +127,7 @@ namespace Donut
Ref<Texture2D> m_texture;
Ref<Shader> m_shader_program;
Ref<Shader> m_compute_program;
+ Ref<Shader> m_blur_shader;
Ref<UniformBuffer> m_camera_ubo;
Ref<UniformBuffer> m_disk_ubo;
Ref<UniformBuffer> m_objects_ubo;
@@ -145,7 +153,9 @@ namespace Donut
float m_early_exit_distance = 5e11f;
float m_disk_thickness = 0.1;
- float m_disk_density = 1.2f;
+ float m_disk_density = 0.1f;
float m_rotation_speed = 1.0f;
+ float m_blur_strength = 2.0f;
+ float m_glow_intensity = 0.1f;
};
};