hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/engine/engine.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-22 12:24:05 +0200
committerhachem <im@hachem.wtf>2025-08-22 12:24:05 +0200
commit2c8002d30f291cba832a5750212009d48238c308 (patch)
tree4aafc468441b3e32c267040830b8e0b5af859faf /src/engine/engine.h
parentb9de06951631d9969c52c6ed95de17a6d8aad121 (diff)
feat: add HDRI
Diffstat (limited to 'src/engine/engine.h')
-rw-r--r--src/engine/engine.h28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/engine/engine.h b/src/engine/engine.h
index 95cd1f0..88e0058 100644
--- a/src/engine/engine.h
+++ b/src/engine/engine.h
@@ -101,30 +101,34 @@ namespace Donut
void set_max_steps_static(int steps) { m_max_steps_static = steps; }
void set_early_exit_distance(float distance) { m_early_exit_distance = distance; }
- float get_disk_thickness() const { return m_disk_thickness; }
+ float get_disk_thickness() const { return m_disk_thickness; }
void set_disk_thickness(float thickness) { m_disk_thickness = thickness; }
- float get_disk_density() const { return m_disk_density; }
- void set_disk_density(float density) { m_disk_density = density; }
+ float get_disk_density() const { return m_disk_density; }
+ void set_disk_density(float density) { m_disk_density = density; }
- float get_rotation_speed() const { return m_rotation_speed; }
- void set_rotation_speed(float speed) { m_rotation_speed = speed; }
+ 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_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; }
+ 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;
+
+ void set_hdri_environment(Ref<CubemapTexture> hdri) { m_hdri_environment = hdri; }
+ Ref<CubemapTexture> get_hdri_environment() const { return m_hdri_environment; }
private:
Ref<Shader> create_compute_program(const char* path);
std::pair<Ref<VertexArray>, Ref<Texture2D>> quad_vao();
private:
Ref<VertexArray> m_quad_vao;
Ref<Texture2D> m_texture;
+ Ref<CubemapTexture> m_hdri_environment;
Ref<Shader> m_shader_program;
Ref<Shader> m_compute_program;
Ref<Shader> m_blur_shader;
@@ -135,8 +139,8 @@ namespace Donut
int m_width;
int m_height;
- float m_width_f = 100*10e10f;
- float m_height_f = 75*10e10f;
+ float m_width_f = 100.0f*1e10f;
+ float m_height_f = 75.0f*1e10f;
int m_target_fps = 60;
float m_current_fps = 60.0f;
@@ -150,9 +154,9 @@ namespace Donut
int m_max_steps_moving = 60000;
int m_max_steps_static = 30000;
- float m_early_exit_distance = 5e11f;
+ float m_early_exit_distance = 5.0e11f;
- float m_disk_thickness = 0.1;
+ float m_disk_thickness = 0.1f;
float m_disk_density = 0.1f;
float m_rotation_speed = 1.0f;
float m_blur_strength = 2.0f;