This release implements "Weighted Laplacian Smoothing for Surface Reconstruction of Particle-based Fluids" (Löschner, Böttcher, Jeske, Bender; 2023), mesh cleanup based on "Mesh Displacement: An Improved Contouring Method for Trivariate Data" (Moore, Warren; 1991) and a new, more efficient domain decomposition (see README.md for more details).
- Lib: Implement new spatial decomposition based on a regular grid of subdomains (subdomains are dense marching cubes grids)
- CLI: Make new spatial decomposition available in CLI with
--subdomain-grid=on
- Lib: Implement weighted Laplacian smoothing to remove bumps from surfaces according to paper "Weighted Laplacian Smoothing for Surface Reconstruction of Particle-based Fluids" (Löschner, Böttcher, Jeske, Bender 2023)
- CLI: Add arguments to enable and control weighted Laplacian smoothing
--mesh-smoothing-iters=...
,--mesh-smoothing-weights=on
etc. - Lib: Implement
marching_cubes_cleanup
function: a marching cubes "mesh cleanup" decimation inspired by "Mesh Displacement: An Improved Contouring Method for Trivariate Data" (Moore, Warren 1991) - CLI: Add argument to enable mesh cleanup:
--mesh-cleanup=on
- Lib: Add functions to
TriMesh3d
to find non-manifold edges and vertices - CLI: Add arguments to check if output meshes are manifold (no non-manifold edges and vertices):
--mesh-check-manifold=on
,--mesh-check-closed=on
- Lib: Support for mixed triangle and quad meshes
- Lib: Implement
convert_tris_to_quads
function: greedily merge triangles to quads if they fulfill certain criteria (maximum angle in quad, "squareness" of the quad, angle between triangle normals) - CLI: Add arguments to enable and control triangle to quad conversion with
--generate-quads=on
etc. - Lib: Support for reading and writing PLY meshes (
MixedTriQuadMesh3d
) - CLI: Support for filtering input particles using an AABB with
--particle-aabb-min
/--particle-aabb-max
- CLI: Support for clamping the triangle mesh using an AABB with
--mesh-aabb-min
/--mesh-aabb-max