From 2f7b80cf1227fc1075abfaebc0e414e7757c942e Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Mon, 31 Jan 2022 17:44:53 +0100
Subject: [PATCH] Potential fix for invalid dt

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 projects/wobble_bobble/shaders/update_grid_forces.comp      | 6 ++++--
 .../wobble_bobble/shaders/update_particle_positions.comp    | 4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/projects/wobble_bobble/shaders/update_grid_forces.comp b/projects/wobble_bobble/shaders/update_grid_forces.comp
index b36becf0..b0de5190 100644
--- a/projects/wobble_bobble/shaders/update_grid_forces.comp
+++ b/projects/wobble_bobble/shaders/update_grid_forces.comp
@@ -82,8 +82,10 @@ void main()	{
         }
     }
 
-    if (mass > 0.0f) {
-        velocity += force * dt / mass;
+    if (dt > 0.0f) {
+        if (mass > 0.0f) {
+            velocity += force * dt / mass;
+        }
     }
 
     bvec3 lowerID = lessThanEqual(gl_GlobalInvocationID, ivec3(0));
diff --git a/projects/wobble_bobble/shaders/update_particle_positions.comp b/projects/wobble_bobble/shaders/update_particle_positions.comp
index 96dd7300..29d51dba 100644
--- a/projects/wobble_bobble/shaders/update_particle_positions.comp
+++ b/projects/wobble_bobble/shaders/update_particle_positions.comp
@@ -22,7 +22,9 @@ void main()	{
         float size = particles[gl_GlobalInvocationID.x].minimal.size;
         vec3 velocity = particles[gl_GlobalInvocationID.x].minimal.velocity;
 
-        position = position + velocity * dt;
+        if (dt > 0.0f) {
+            position = position + velocity * dt;
+        }
 
         for (uint i = 0; i < 3; i++) {
             if (position[i] - size < 0.0f) {
-- 
GitLab