[Bf-blender-cvs] [b3ed9257aa1] fluid-mantaflow: fix for levelset generation

Sebastián Barschkis noreply at git.blender.org
Fri Aug 18 18:00:47 CEST 2017


Commit: b3ed9257aa1f7778e8ab3b8aa6ce37c41554bc32
Author: Sebastián Barschkis
Date:   Fri Aug 18 17:52:46 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBb3ed9257aa1f7778e8ab3b8aa6ce37c41554bc32

fix for levelset generation

fixes problem with multiple collision / guiding objects. levelset was overwritten incorrectly.

===================================================================

M	source/blender/blenkernel/intern/smoke.c

===================================================================

diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 2cd19907cd6..1a0c9c92e98 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -1697,7 +1697,7 @@ static void update_mesh_distances(int index, float *mesh_distances, BVHTreeFromM
 	}
 
 	/* Update mesh distance in map */
-	mesh_distances[index] = MIN2(fabsf(mesh_distances[index]), min_dist);
+	mesh_distances[index] = MIN2(mesh_distances[index], min_dist);
 
 	/* If point is on surface it is also considered to be "inside" the mesh (negative levelset) */
 	BVHTreeNearest nearest = {0};
@@ -1707,7 +1707,7 @@ static void update_mesh_distances(int index, float *mesh_distances, BVHTreeFromM
 	inside |= (BLI_bvhtree_find_nearest(treeData->tree, ray_start, &nearest, treeData->nearest_callback, treeData) != -1);
 
 	/* Levelset is negative inside mesh */
-	if (inside) mesh_distances[index] *= -1.0f;
+	if (inside) mesh_distances[index] = fabs(mesh_distances[index]) * (-1.0f);
 }
 
 static void sample_derivedmesh(



More information about the Bf-blender-cvs mailing list