as a handful of you may know, I'm currently developing an OpenVDB based particle mesher modifier. This little project is going faster than I thought (I started last week-end), and I'm coming out my cave to share the first results. Below are two demo vids I made somewhat in a rush, I would need proper test/demo files, you know, the real deal. Also these vids are made with the "default" particle system, but it works with the others: SPH, Boids and even Hair particles (it'll will put a sphere at each hair points). Children particles are not supported yet.
- The level set filters don't work properly. There's some logic issue in my code which needs proper refactor: only two filters are right, for the rest, it tries to add some modifiers (like Mirror and Array) which results in a crash,
- The "Velocity Scale" factor is not doing anything, it just sits there in the UI, needs to be hooked up in the code,
- The particles velocity (used for the trails) is not properly taken into account, I was a tad lazy and it just checks if the first particle has some velocity -> buggy,
- The filters can optionally accept an alpha mask, this mask could be generated from the particles level set or could be an extra mesh, like other settings for the filters this could be a per filter setting,
- The mesher can be set to generate an adaptive mesh, for now it just outputs a mesh with polygons the same size. The adaptivity is on a per frame basis, though, this would cause the mesh to flicker in an animation,
- More filters! (Once they are fixed.) OpenVDB 3.0 comes with support for "dilate" and "erode" filters, namely. There's also an "offset" one currently, that is controlled with the "Voxel Offset" slider you can see in the first video, I disabled it for some compile error, which should be fixed by now.
- We could use some extra meshes that alpha-mask the overall meshing operation to choose what we want to convert, or even "union" (the Boolean operation) with it, e.g., if the particles are supposed to mesh something on the ground, or the water, and the ground/water and particles need to be one mesh for rendering purposes and the likes.
There's still a little bit of work to be done, but once that's done we should have the majority of the tools needed to convert other modifiers to use OpenVDB; I'm currently thinking of the Boolean, Laplacian Smooth or even the (in-development) Fracture modifier .