Page MenuHome

Fix T70326: Some bad behaviours with Voxel Remesh
Needs RevisionPublic

Authored by Pablo Dobarro (pablodp606) on Sep 28 2019, 6:31 PM.

Details

Summary

I would like to avoid doing this if we can solve the problem in the shrinkwrap code. This makes the remesher slower in high poly meshes and these random projection spikes mostly happen in low poly meshes when the voxel size is not enough to hold the detail.

Diff Detail

Repository
rB Blender
Branch
T70326 (branched from master)
Build Status
Buildable 5149
Build 5149: arc lint + arc unit

Event Timeline

So the current shrink wrap code fails in some cases currently? Or is it simply that is produces undesirable results?

Sometimes a vertex is projected to an incorrect place on the target mesh, producing spikes (T70292 , those vertices are not actually merged).

Jeroen Bakker (jbakker) requested changes to this revision.Wed, Oct 30, 9:12 AM

This patch feels like hiding issues in other code. Not sure we should try to patch it this way, unless we know for certain that it is intended by the shrinkwrap code.

source/blender/blenkernel/intern/mesh_remesh_voxel.c
356

Wouldn't mind splitting this function into several functions so it is easier to step through when debugging. Would also clarify better the steps in the code.

452

Unsure: is BM_VERT and BM_EDGE needed?

507

Possible Division by zero?

526

Unclear where this loops comes from. Please clarify in doc.

This revision now requires changes to proceed.Wed, Oct 30, 9:12 AM

It think there was some patches merged recently that improved the accuracy of the shrink wrap projection stuff? @Pablo Dobarro (pablodp606) did those shrink wrap improvements help in anyway?

I did some tweaks in the shrinkwrap function but it is still not 100% reliable. Do you know if there are some better defaults for the shrinkwrap?

Hi. Just want to provide an example of broken by shrinkwrap modifier mesh. I made some voxel remesh operations and then applied shrinkwrap to duplicated mesh. "Target Normal Project" always gives wrong results on this type of mesh. I think "Project Above Surface" gives better results compared to other methods. But not sure if "Project Above Surface" will broke other types of meshes or not.

@Pablo Dobarro (pablodp606) The best Shrinkwrap option I have seen is having it set to Project -> On Surface -> Cull Faces set to Off -> Direction Positive+Negative checked on. Been using it very often while projecting details back onto my new mesh while having MultiRes activated. Don't think I have seen these projection artefacts ever using this method.

This should frankly also be the default setting while working with the modifier in Sculpt Mode. Could be worth trying to see if this solves the problem of strange projection artefacts with Voxel Remesher.