hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/engine/engine.cpp
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-22 04:31:37 +0200
committerhachem <im@hachem.wtf>2025-08-22 04:31:37 +0200
commit2dd07499241638e66ee0df97cba91219f5599151 (patch)
tree443d39d8cec967a0d01502a60d7de23e2c5304fe /src/engine/engine.cpp
parent0d4f5f665f2e4b735fb4f978acc6c8d4a16fcb5d (diff)
feat: volumetric cloud rendering
Diffstat (limited to 'src/engine/engine.cpp')
-rw-r--r--src/engine/engine.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp
index 3b5e320..435b3e0 100644
--- a/src/engine/engine.cpp
+++ b/src/engine/engine.cpp
@@ -36,7 +36,7 @@ namespace Donut
m_compute_program = create_compute_program("assets/shaders/geodesic.glsl");
m_camera_ubo = UniformBuffer::create(128, 1);
- m_disk_ubo = UniformBuffer::create(sizeof(float) * 4, 2);
+ m_disk_ubo = UniformBuffer::create(sizeof(float) * 5, 2);
uint32_t obj_ubo_size = sizeof(int) + 3 * sizeof(float)
+ 16 * (sizeof(glm::vec4) + sizeof(glm::vec4))
@@ -177,8 +177,8 @@ namespace Donut
float r1 = static_cast<float>(m_sag_a.m_rs * 2.2);
float r2 = static_cast<float>(m_sag_a.m_rs * 5.2);
float num = 2.0f;
- float thickness = 1e9f;
- float disk_data[4] = { r1, r2, num, thickness };
+ float thickness = static_cast<float>(m_sag_a.m_rs * m_disk_thickness);
+ float disk_data[5] = { r1, r2, num, thickness, m_disk_density };
m_disk_ubo->set_data(disk_data, sizeof(disk_data));
m_disk_ubo->bind(2);
@@ -191,13 +191,13 @@ namespace Donut
int max_steps_moving;
int max_steps_static;
float early_exit_distance;
- int padding;
+ float time;
} data;
data.max_steps_moving = m_max_steps_moving;
data.max_steps_static = m_max_steps_static;
data.early_exit_distance = m_early_exit_distance;
- data.padding = 0;
+ data.time = static_cast<float>(glfwGetTime()) * m_rotation_speed;
m_simulation_ubo->set_data(&data, sizeof(data));
m_simulation_ubo->bind(4);