Skip to content

Releases: Azkellas/mesh_to_sdf

v0.4.0

17 Sep 13:03
Compare
Choose a tag to compare

Migration Guide

  • generate_sdf AccelerationMethod and SignMethod were merged into one AccelerationMethod(SignMethod) when the acceleration method accepts a sign method.
  • Consider switching to AccelerationMethod::RtreeBvh (raycast) or AccelerationMethod::Rtree (normal) for faster results.
  • generate_grid_sdf is now parallelized.
  • Point trait now requires Debug and PartialEq to be implemented.

Changelog

mesh_to_sdf

[0.4.0] - 2024-09-17

Added

  • New AccelerationMethods with Rtree and RtreeBvh. Rtree uses a r-tree for distances and the normal sign method, while RtreeBvh uses a r-tree for distances and a bvh for raycast.
    Both are about 4x faster than the previous Bvh for 10k and more queries.

Changed

  • generate_grid_sdf is now fully parallelized. It's between 10x and 20x faster on a high end cpu, depending on the number of triangles and the grid resolution.
  • AccelerationMethod now includes the SignMethod when it makes sense. generate_sdf only takes the AccelerationMethod parameter, and the SignMethod is inferred from it.
    This is because not all acceleration methods support all sign methods. For example, Rtree only supports the normal sign method, while RtreeBvh supports raycasting only.
  • Point trait now requires Debug and PartialEq to be implemented.
  • RtreeBvh is the new default AccelerationMethod.

mesh_to_sdf_client

[0.4.0] - 2024-09-17

Update mesh_to_sdf dependency to 0.4.0.

v0.3.0 / v0.3.1

09 Sep 12:18
Compare
Choose a tag to compare

Migration Guide

  • generate_sdf needs an additionnal AccelerationMethod parameter.
  • Point custom implementations need to be (de-)serializable if the feature serde is enabled and specify the Serde associated type
  • nalgebra feature was removed as it is required by AccelerationMethod::Bvh

Changelog

mesh_to_sdf

[0.3.0]

Added

  • generate_sdf takes an additional AccelerationMethod parameter, that can be either AccelerationMethod::Bvh (default) or AccelerationMethod::None.
    Bvh is recommended unless you're really tight on memory or your query is very small (couple hundreds of queries and triangles).
    For example, a query of 15k points with 100k triangles is 10 times faster with a bvh, and twice faster for 500 queries and 10k triangles.
    Bvh is also optimised for the SignMethod::Raycast sign method. #75
  • Both generic and grid based sdfs can now be (de-)serialized. Use SerializeGrid and DeserializeGrid, or the helpers save_to_file and read_from_file.

Fixed

  • Fix #25 where generate_grid_sdf might panic if the grid does not contain the mesh.
  • Make grid based generation ~2x faster by improving heap generation.

Removed

  • nalgebra is no longer optional as it is required by bvh. The feature was removed as it will always be available.

mesh_to_sdf_client

[0.3.1]

Fixed

  • Fix overflow when loading gltf.

[0.3.0]

Added

  • Voxel and Raymarch visualizations now map the material of the mesh onto the new geometry.

Changed

  • Parallelize loading of the mesh.

v0.2.1

18 Feb 19:09
Compare
Choose a tag to compare

Migration Guide

Changelogs

In generate_grid_sdf signature, replace &cell_count by cell_count.

mesh_to_sdf

[0.2.1] - 2024-02-18

Changed

  • generate_grid_sdf with SignMethod::Raycast now tests in the three directions (+x, +y, +z). This does not slow the computation down, but it makes the result more robust. This does not affect generate_sdf.
  • Grid::from_bounding_box takes a [usize; 3] instead of &[usize; 3] for cell_count

mesh_to_sdf_client

[0.2.1] - 2024-02-18

Update mesh_to_sdf dependency to 0.2.1 since it had a breaking change.

v0.2.0

16 Feb 20:49
Compare
Choose a tag to compare

Migration Guide

mesh_to_sdf::generate_sdf and mesh_to_sdf::generate_grid_sdf require a new SignMethod parameter at the end of their signature.
Use mesh_to_sdf::SignMethod::Normal to keep the same behavior as the previous version, but consider switching to mesh_to_sdf::SignMethod::Raycast for better results if your meshes are watertight.


Changelogs

mesh_to_sdf

[0.2.0] - 2024-02-16

Added

  • SignMethod enum to represent the sign method used to calculate the signed distance.
  • generate_sdf and generate_grid_sdf now take a SignMethod parameter.
  • SignMethod::Raycast to use raycasting to determine the sign of the distance.

mesh_to_sdf_client

[0.2.0] - 2024-02-16

Added

  • Isosurface control for point cloud, voxels and raymarching visualization.
  • Expose SignMethod enum in UI.

v0.1.0

06 Feb 20:52
Compare
Choose a tag to compare

mesh_to-sdf

[0.1.0] - 2024-02-05

First release of mesh_to_sdf.

Added

  • generate_sdf function to get the signed distance from query points to a mesh.
  • generate_grid_sdf function to get the signed distance from a grid to a mesh.
  • Point trait to allow the use of any type as vertices.
  • Topology enum to represent the topology of the mesh.
  • Grid struct to represent a grid.
  • [f32; 3] implementation for Point trait.
  • cgmath implementation for Point trait.
  • glam implementation for Point trait.
  • mint implementation for Point trait.
  • nalgebra implementation for Point trait.

mesh_to_sdf_client

[0.1.0] - 2024-02-05

First release of mesh_to_sdf_client.

Added

  • Model visualization with a Blinn-Phong shader.
  • SDF visualization with a point cloud.
  • SDF point size and color customization.
  • Model + SDF visualization.
  • Raymarching visualization (snap, trilinear and tetrahedral interpolations).
  • Voxels visualization.
  • Model and SDF metrics.
  • Light control.
  • Grid parametrization (cell count, size, and bounding box extension).