Page MenuHome

Volumes: new Volume to Mesh modifier
ClosedPublic

Authored by Jacques Lucke (JacquesLucke) on Oct 7 2020, 6:39 PM.
Tags
None
Tokens
"Like" token, awarded by slumber."Love" token, awarded by ILJI."Love" token, awarded by SlugNugget."Love" token, awarded by simonthommes."Love" token, awarded by Robonnet."Love" token, awarded by kenziemac130."Love" token, awarded by Draise."Love" token, awarded by julperado."Love" token, awarded by kioku.

Details

Summary

This adds a new mesh modifier that converts another volume object into a mesh.
It's doing the opposite of the Mesh to Volume modifier.

I'm not sure what other settings this modifier needs. Maybe you should be able to control the resolution? Currently the resolution is based on the grid resolution.

Diff Detail

Repository
rB Blender
Branch
volume-to-mesh-modifier (branched from master)
Build Status
Buildable 10612
Build 10612: arc lint + arc unit

Event Timeline

Jacques Lucke (JacquesLucke) requested review of this revision.Oct 7 2020, 6:39 PM
Jacques Lucke (JacquesLucke) created this revision.

That's a cool demo video.

I think using the grid resolution is a good default. An option to manually specify the resolution also makes sense to me.

This could get options matching the Remesh modifier in Voxel mode? Basically voxel size (if not chosen to be set automatically), adaptivity and smooth shading.

Maybe we need a more user-friendly name for Iso Value? Not sure if there is a standard term.

  • add adaptivity option
  • add smooth shading option
  • add three resolution modes: grid, voxel amount, voxel size

Still have to do some cleanup and figure out why object.imat is not affine in some cases.
This floating point issue makes openvdb throw an exception.

I just gave it a run, had to try it. Absolutely fantastic!

Having three overlapping objects with two different modifier stacks for this one setup is starting to get a bit crazy for selecting or tweaking things, but that is just how it is for now.
Only additional potential feature that comes to mind would be to remove disconnected single voxels before conversion, but that can also be substituted with mesh modifiers.

Small thing:
Maybe Iso = 0 should not be allowed or clamped?

  • change soft minimum of iso value
  • remove timers

Only additional potential feature that comes to mind would be to remove disconnected single voxels before conversion, but that can also be substituted with mesh modifiers.

That sounds useful. I'd probably implement this on the mesh level. For example, by removing all connected mesh components with less than x vertices. Not sure if it should be part of this modifier.
In a node setup it would probably be a separate node.

Implementation looks fine to me, only suggestion is to make theiso value name more user friendly.

source/blender/makesrna/intern/rna_modifier.c
7175

I think "density threshold" or just "threshold" would be a better name.

This revision is now accepted and ready to land.Oct 16 2020, 7:24 PM
  • Merge branch 'master' into volume-to-mesh-modifier
  • change iso_value to threshold
This revision was automatically updated to reflect the committed changes.