Page MenuHome

New Remeshing Modes for Remesh Modifier
Needs ReviewPublic

Authored by Martin Felke (scorpion81) on May 27 2019, 7:33 PM.
Tokens
"Love" token, awarded by brilliant_ape."Love" token, awarded by MetinSeven."Love" token, awarded by amonpaike."Love" token, awarded by belich."Love" token, awarded by mankysee."Love" token, awarded by CodyWinch."Love" token, awarded by symstract."Love" token, awarded by juang3d."Love" token, awarded by Classycoder."Love" token, awarded by kioku."Love" token, awarded by ofuscado."Like" token, awarded by erickblender."Like" token, awarded by Dspazio.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

This patch adds an OpenVDB-based voxel remeshing mode and a metaball-based remeshing mode to the Remesh Modifier.
The Voxel remesh mode is taken from the sculpt-mode-features branch and the metaball remesher from the fracture modifier branch.
For now this is a combined patch since both modes affect the Remesh Modifier.
Putting this up in this form for reference only. I will probably split this into its two modes later.

Edit: i will let this in one mode, since particle and mesh voxelization is totally related, can share the CSG logic and creates less noise in the codebase, aka creating a new modifier is more disruptive.
The CSG logic is also helpful for particle meshing since you can for example cut away unwanted parts of e.g. a meshed sph simulation in order to have a fluid fit into a glass (without simulation overhead)

Diff Detail

Event Timeline

AV (Dspazio) added a subscriber: AV (Dspazio).

Both functions are very useful. However particle meshing should indeed be a separate modifier and submitted as a separate patch. I guess ideally OpenVDB could be used for particle remeshing too, it's probably better than our metaball code in terms of performance and control.

If this code is not ready to be reviewed, please set it as Planned Changes.

Martin Felke (scorpion81) planned changes to this revision.May 28 2019, 11:00 AM
Martin Felke (scorpion81) updated this revision to Diff 18031.
  • Improved the gaussian smoothing algorithm and using this instead of openvdbs standard gaussian
  • added sharpen edges / corners feature for voxel remesher to try to preserve original features of the mesh
  • included particle meshing mode into voxel remesher. It belongs there too, since it shares openvdb and volume csg logic. This would be duplicated otherwise. A new modifier also creates more noise as other modifier devs need to take care of new numbering, modifying a lot of more files etc. It is just more hassle to add a new modifier than to add a new mode to a thematically totally related modifier, aka remeshing. It is also easier for users to remember to look for one modifier and know that the functionality is grouped in there.

I agree with @Martin Felke (scorpion81) here.

After having it in our build and working with it it makes a lot of sense to have it all inside a single modifier, and don't have to think if you are working with meshes or particles, it's just a mesher with several techniques.

In fact, if something has to change I would change the modifier name, from "Remesher" to "Mesher/Remesher" or simply "Mesher", because it reflects much better what the actual modifier is doing, is generating a completely new mesh for the given input.

For example, Thinkbox Frost is not a remesher, everyone that uses it knows it as a mesher, it can do exactly the same as our current remesher modifier (I mean this one, not the old one) it does not matter if it works with geometry or particles or any other possible input that is made compatible with it (curves?), it just generates a mesh based on the input and given parameters.

In fact one of the most poerful thing here (that also Frost has) is that we can arbitrarily mix different input types, so we can mix particles with geometry and limit it with curves for example.

I agree, it should stay everything inside a single modifier, and in the end it may be good to rename the modifier to "Mesher/Remesher" or simply "Mesher" IMHO.

removed some now unnecessary old experimental, active code

some linux compile fixes

sharpen features works with accumulate now + a few cleanups

improved sharpening mode : usable for csg objects and now threaded with tbb::parallel_for

  • Improved the gaussian smoothing algorithm and using this instead of openvdbs standard gaussian

Cool, @Martin Felke (scorpion81)! ๐Ÿ‘ Looking forward to try the new Remesh modifier. When can we expect it in the Blender master?

Thanks!

  • Improved the gaussian smoothing algorithm and using this instead of openvdbs standard gaussian

Cool, @Martin Felke (scorpion81)! ๐Ÿ‘ Looking forward to try the new Remesh modifier. When can we expect it in the Blender master?
Thanks!

Hey! You can test it already in our build, I have to update the build with all the latest big changes from 2.81, and the latest adjustments done to this by @Martin Felke (scorpion81) , but I will update it ASAP

slarti added a subscriber: slarti.Fri, Sep 20, 2:45 PM