表面网格到体积网格

表面网格到体积网格

本文介绍了表面网格到体积网格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用 Meshlab 从点云生成的封闭表面网格.我需要为此获得一个体积网格,以便它不是空心物体.我想不通.我需要获取一个 *.stl 文件进行打印.任何人都可以帮助我获得体积网格吗?(我更喜欢简单的解决方案而不是复杂的算法).

I have a closed surface mesh generated using Meshlab from point clouds. I need to get a volume mesh for that so that it is not a hollow object. I can't figure it out. I need to get an *.stl file for printing. Can anyone help me to get a volume mesh? (I would prefer an easy solution rather than a complex algorithm).

推荐答案

给定一个定向的水密表面网格,可以推导出一个 oracle 函数来确定查询线段是否与表面相交(以及在哪里):从一个点射出一条射线终点并使用奇偶规则(在对网格面进行空间索引之后).

Given an oriented watertight surface mesh, an oracle function can be derived that determines whether a query line segment intersects the surface (and where): shoot a ray from one end-point and use the even-odd rule (after having spatially indexed the faces of the mesh).

然后可以使用此 oracle 函数应用体积网格划分算法来细分内部,通常是 Marching Cubes 或基于 Delaunay 的方法的变体(参见 3D 表面网格生成 在 CGAL 文档中).然而,初始表面将不会被完全保留.

Volumetric meshing algorithms can then be applied using this oracle function to tessellate the interior, typically variants of Marching Cubes or Delaunay-based approaches (see 3D Surface Mesh Generation in the CGAL documentation). The initial surface will however not be exactly preserved.

据我所知,MeshLab 仅支持表面网格,因此不太可能为此提供现成的过滤器.然而,体积网格器包应提供此功能(例如 TetGen).

To my knowledge, MeshLab supports only surface meshes, so it is unlikely to provide a ready-to-use filter for this. Volume mesher packages should however offer this functionality (e.g. TetGen).

这篇关于表面网格到体积网格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 15:46