面网格到体网格
Surface mesh to volume mesh
我有一个使用 Meshlab 从点云生成的闭合曲面网格。我需要为此获得一个体积网格,这样它就不是一个空心物体。我想不通。我需要一个 *.stl 文件来打印。谁能帮我获得体积网格? (我更喜欢简单的解决方案而不是复杂的算法)。
给定一个定向的水密表面网格,可以导出一个 oracle 函数来确定查询线段是否与表面相交(以及在哪里):从一个 end-point 射出一条射线并使用 even-odd 规则(在对网格的面进行空间索引之后)。
然后可以使用此 oracle 函数应用体积网格算法来细分内部,通常是 Marching Cubes 或 Delaunay-based 方法的变体(请参阅 CGAL 文档中的 3D Surface Mesh Generation)。然而,初始表面将不会完全保留。
据我所知,MeshLab 仅支持表面网格,因此不太可能为此提供 ready-to-use 过滤器。然而,体积网格器包应该提供此功能(例如 TetGen)。
问题不是很清楚。我尝试给出不同的解释。根据你最后一句话:
I need to get an *.stl file for printing
这意味着您需要一个可以使用 3D 打印机制作的 3D 模型,即您需要一个水密网格。水密网格是以明确的方式定义体积内部的网格,对应于封闭(无边界)、2-流形(主要是每条边由两个面共享)且没有自相交的网格.
MeshLab 提供可视化边界、非流形和 self-intersection 的工具。可以通过许多不同的方式纠正它们(删除非流形和孔填充或剧烈重新划分网格)。
我有一个使用 Meshlab 从点云生成的闭合曲面网格。我需要为此获得一个体积网格,这样它就不是一个空心物体。我想不通。我需要一个 *.stl 文件来打印。谁能帮我获得体积网格? (我更喜欢简单的解决方案而不是复杂的算法)。
给定一个定向的水密表面网格,可以导出一个 oracle 函数来确定查询线段是否与表面相交(以及在哪里):从一个 end-point 射出一条射线并使用 even-odd 规则(在对网格的面进行空间索引之后)。
然后可以使用此 oracle 函数应用体积网格算法来细分内部,通常是 Marching Cubes 或 Delaunay-based 方法的变体(请参阅 CGAL 文档中的 3D Surface Mesh Generation)。然而,初始表面将不会完全保留。
据我所知,MeshLab 仅支持表面网格,因此不太可能为此提供 ready-to-use 过滤器。然而,体积网格器包应该提供此功能(例如 TetGen)。
问题不是很清楚。我尝试给出不同的解释。根据你最后一句话:
I need to get an *.stl file for printing
这意味着您需要一个可以使用 3D 打印机制作的 3D 模型,即您需要一个水密网格。水密网格是以明确的方式定义体积内部的网格,对应于封闭(无边界)、2-流形(主要是每条边由两个面共享)且没有自相交的网格.
MeshLab 提供可视化边界、非流形和 self-intersection 的工具。可以通过许多不同的方式纠正它们(删除非流形和孔填充或剧烈重新划分网格)。