Converting voxels to iso-surface polygons

   438   2   1
User Avatar
Member
7 posts
Joined: Nov. 2019
Offline
I use the attached nodes to:

1. Import an STL file [upload.wikimedia.org]
2. Convert the STL triangles to voxels by OpenVDB.
3. Convert the voxels to iso-surface polygons by OpenVDB.
4. Save the iso-surface polygons as a new STL file.

When the voxel size is smaller, then the iso-surface polygons are all connected. But when the voxel size becomes larger, then some iso-surface polygons are disconnected as separate components. This is an expected behavior, since the eight corners of a large voxel might not reflect the change in the signed distance field. For example the eight corners may have the same sign, but the signed distance field is actually changing within the large voxel.

The screenshots are attached.

By any chance, is there a trick or workaround to force the connectivity of the iso-surface polygons even if the voxel size is large? Just curious.
Edited by megiddgit - Feb. 13, 2024 08:46:44

Attachments:
voxel2tri.zip (11.5 KB)
2024-02-13 04_46_52-MeshLab 2022.02 - [Project_1].png--smaller.png (101.0 KB)
2024-02-13 04_46_16-MeshLab 2022.02 - [Project_1].png--larger.png (105.0 KB)

User Avatar
Member
477 posts
Joined: July 2005
Offline
As you have already described, if the voxels are too large, they are not able to determine between thin connections and no connections. If you only have this information, there is no chance to reconstruct a connectivity, because it is not even clear that a connection exists.
Edited by Aizatulin - Feb. 13, 2024 10:49:48
User Avatar
Member
7 posts
Joined: Nov. 2019
Offline
Aizatulin
... If you only have this information, there is no chance to reconstruct a connectivity, because it is not even clear that a connection exists.

Right. Thanks.
  • Quick Links