https://github.com/aleokdev/dmc
An implementation of Dual Marching Cubes (DMC) for already sampled data
https://github.com/aleokdev/dmc
dual-marching-cubes isosurface mesh-generation octree
Last synced: 6 months ago
JSON representation
An implementation of Dual Marching Cubes (DMC) for already sampled data
- Host: GitHub
- URL: https://github.com/aleokdev/dmc
- Owner: aleokdev
- License: mit
- Created: 2021-04-01T15:29:55.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-04-03T11:34:43.000Z (almost 5 years ago)
- Last Synced: 2024-10-31T11:52:45.110Z (about 1 year ago)
- Topics: dual-marching-cubes, isosurface, mesh-generation, octree
- Language: Rust
- Homepage: https://docs.rs/sampled-dmc
- Size: 39.1 KB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Sampled DMC
This crate defines a fast implementation for the [Dual Marching Cubes technique](https://www.cs.rice.edu/~jwarren/papers/dmc.pdf),
also known as Linear Hashed Marching Cubes, along with a concurrent octree structure for storing node data.
Unlike [isosurface](https://docs.rs/isosurface/0.0.4/isosurface/), this crate does NOT expect Signed Distance Functions (SDFs) or use them in any way.
The input of the mesh creation functions is the data octree itself, not a sampling source, which makes it appropiate for situations where storing
the sampled points is appropiate (i.e. complex SDFs, destructible environments or objects with different LODs).
## TODO
- Allow for inputting a "LOD function" which determines how detailed each point should be (as in how deep into the octree it should go)
- Add benchmarks