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
This commit is contained in:
parent
9b944e530e
commit
265295e6a6
Notes:
blender-bot
2023-02-14 09:29:42 +01:00
Referenced by issue #70326, Some bad behaviours with Voxel Remesh
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue