From f228253fb8bda28b8a187355d727a0babb60d884 Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Fri, 4 Feb 2022 19:09:02 +0100
Subject: [PATCH] Nearly no explosions at all

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 .../wobble_bobble/shaders/transform_particles_to_grid.comp    | 4 ++--
 .../wobble_bobble/shaders/update_particle_velocities.comp     | 2 +-
 projects/wobble_bobble/src/main.cpp                           | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
index 49df3479..7e999944 100644
--- a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
+++ b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
@@ -71,7 +71,7 @@ void main()	{
         memoryBarrierShared();
     }
 
-    gridValue.xyz += vec3(0.0f, -9.81f * dts * gridValue.w, 0.0f);
+    gridValue.xyz += vec3(0.0f, -9.81f * dts * gridValue.w * 0.0f, 0.0f);
     gridValue.xyz /= gridValue.w;
 
     if (any(isnan(gridValue.xyz)) || any(isinf(gridValue.xyz))) {
@@ -90,7 +90,7 @@ void main()	{
         (lowerID.z && negativeVelocity.z) || (greaterID.z && positiveVelocity.z)
     );
 
-    gridValue.xyz = mix(gridValue.xyz, vec3(0.0f), collision);
+    gridValue.xyz = mix(gridValue.xyz, -gridValue.xyz, collision);
 
     barrier();
     memoryBarrierShared();
diff --git a/projects/wobble_bobble/shaders/update_particle_velocities.comp b/projects/wobble_bobble/shaders/update_particle_velocities.comp
index c5f53ee0..65cb6f7f 100644
--- a/projects/wobble_bobble/shaders/update_particle_velocities.comp
+++ b/projects/wobble_bobble/shaders/update_particle_velocities.comp
@@ -85,7 +85,7 @@ void main()	{
                 mat3 delta = lame2 * (F - F_T_inv) + lame1 * log(J) * F_T_inv;
                 mat3 stress = (1.0f / J) * delta * F_T;
 
-                mls_Q -= dts * volume * stress * D_inv;
+                mls_Q -= dts * volume * D_inv * stress;
             }
 
             affine_C = affine_B * D_inv;
diff --git a/projects/wobble_bobble/src/main.cpp b/projects/wobble_bobble/src/main.cpp
index 7d69a2e7..492b75cf 100644
--- a/projects/wobble_bobble/src/main.cpp
+++ b/projects/wobble_bobble/src/main.cpp
@@ -171,13 +171,13 @@ int main(int argc, const char **argv) {
 			swapchainExtent.height
 	).getHandle();
 
-	glm::vec3 initialVelocity (0.0f, 1.0f, 0.0f);
+	glm::vec3 initialVelocity (0.0f, 0.1f, 0.0f);
 	float density = 2500.0f;
 	float radius = 0.1f;
 	
 	vkcv::Buffer<Particle> particles = core.createBuffer<Particle>(
 			vkcv::BufferType::STORAGE,
-			64
+			256
 	);
 	
 	resetParticles(particles, initialVelocity, density, radius);
-- 
GitLab