4 ms·
Isosurface extraction is a fascinating rabbit hole to go down (speaking as someone that's deep underground). There's a long list of properties that you want yo
by mkeeter 6y ago
Isosurface extraction is a fascinating rabbit hole to go down (speaking as someone that's deep underground).
There's a long list of properties that you want your algorithm to have:
- Meshes should be watertight
- Meshes should be manifold
- There should be no self-intersections
- Sharp features (edges and corners) should be reproduced accurately, rather than blurred or bevelled
- Thin features should be preserved (which makes it tricky to sample on a regular grid!)
- The mesh should be adaptive, i.e. having fewer triangles in flat areas
It's relatively easy to get ~3 of these properties, and (last time I checked) nigh impossible to get 5 or 6 in the general case.
If you'd like to read more, Doug Moen has a comprehensive overview of the literature:
https://github.com/curv3d/curv/blob/master/ideas/v-rep/To_Mesh.rst https://github.com/curv3d/curv/blob/master/ideas/v-rep/To_Me...
I've also written up a 2D study of Marching Cubes (Squares) vs Dual Contouring:
https://www.mattkeeter.com/projects/contours/ https://www.mattkeeter.com/projects/contours/
And a deep dive into the math that lets you precisely position vertexes in dual contouring:
https://www.mattkeeter.com/projects/qef https://www.mattkeeter.com/projects/qef
- deleted 6y ago[deleted]
- 3327 6y agoYes and try doing it over network in a multiplayer setting. Pc title we have been working on foe 2 years entering Alpha soon...
- Bjartr 6y agoI look forward to hearing more about this!
- ArtWomb 6y agoNice to see advanced CG content on HN ;) Any attempt using Tensorflow? MeshSDF: Differentiable Iso-Surface Extraction https://arxiv.org/abs/2006.03997 https://arxiv.org/abs/2006.03997
- blue-dragonfly 6y agoAs a generalist trying to develop a CAD system using SDF and functional representation, the details of isosurface extraction are interesting to me (if somewhat tedious at times). Researching the bigger picture, tying together the concepts of representation, rendering, analysis, manufacturing, etc. is my rabbit hole. For those of you that don't know, mkeeter has developed Libfive--a well-regarded project which performs isosurface extraction of implicit functions to triangular meshes--so we can render them with OpenGL or print them on a 3D printer, for example. The implicit functions can be implemented at several language layers, including C, C++, and Scheme. https://github.com/libfive/libfive https://github.com/libfive/libfive