[Bf-blender-cvs] [265295e6a6c] blender-v2.81-release: Fix Voxel Remesher preserve volume artifacts

Pablo Dobarro noreply at git.blender.org
Wed Nov 6 19:18:50 CET 2019


Commit: 265295e6a6ca9935159f75fe2956ee908c06bf4f
Author: Pablo Dobarro
Date:   Tue Nov 5 15:01:51 2019 +0100
Branches: blender-v2.81-release
https://developer.blender.org/rB265295e6a6ca9935159f75fe2956ee908c06bf4f

Fix Voxel Remesher preserve volume artifacts

Should Fix T70326

This implements the shrinkwrap options suggested in D5933. I did a few
test and it seems much more stable than the previous options.

Reviewed By: jbakker

Maniphest Tasks: T70326

Differential Revision: https://developer.blender.org/D6176

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

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

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

diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index 28f552cec2e..0d9decbdf81 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -1513,8 +1513,9 @@ void BKE_shrinkwrap_remesh_target_project(Mesh *src_me, Mesh *target_me, Object
   int totvert;
 
   ssmd.target = ob_target;
-  ssmd.shrinkType = MOD_SHRINKWRAP_TARGET_PROJECT;
+  ssmd.shrinkType = MOD_SHRINKWRAP_PROJECT;
   ssmd.shrinkMode = MOD_SHRINKWRAP_ON_SURFACE;
+  ssmd.shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR | MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR;
   ssmd.keepDist = 0.0f;
   ssmd.projLimit = target_me->remesh_voxel_size;
 
@@ -1528,12 +1529,13 @@ void BKE_shrinkwrap_remesh_target_project(Mesh *src_me, Mesh *target_me, Object
   calc.vgroup = -1;
   calc.target = target_me;
   calc.keepDist = ssmd.keepDist;
+  calc.vert = src_me->mvert;
   BLI_SPACE_TRANSFORM_SETUP(&calc.local2target, ob_target, ob_target);
 
   ShrinkwrapTreeData tree;
   if (BKE_shrinkwrap_init_tree(&tree, calc.target, ssmd.shrinkType, ssmd.shrinkMode, false)) {
     calc.tree = &tree;
-    TIMEIT_BENCH(shrinkwrap_calc_nearest_surface_point(&calc), deform_surface);
+    TIMEIT_BENCH(shrinkwrap_calc_normal_projection(&calc), deform_project);
     BKE_shrinkwrap_free_tree(&tree);
   }



More information about the Bf-blender-cvs mailing list