PyMesh 是一个专注于几何处理的快速原型开发平台,主要专注于处理和生成3D网格。它提供了一套常用的网格处理功能,并与多个先进的开源软件包建立了接口,能够在单一开发环境中无缝整合这些软件包的功能。
网格处理在Python中应该是简单的。PyMesh倡导人类可读的极简主义接口,并可与原生Python数据结构(如 numpy.ndarray)协同工作。
从文件加载网格:
>> import pymesh
"cube.obj");
>> mesh = pymesh.load_mesh(
访问网格顶点:
mesh.vertices
array([[-1.,-1.,1.],
...
[1.,1.,1.]])
>>> type(mesh.vertices)
<type'numpy.ndarray'>
计算每个顶点的高斯曲率:
"vertex_gaussian_curvature");
>> mesh.add_attribute("vertex_gaussian_curvature");
>> mesh.get_attribute(array([1.57079633,1.57079633,1.57079633,1.57079633,1.57079633,
1.57079633,1.57079633,1.57079633])
以下第三方库并非必需,但为了充分发挥 PyMesh 的全部功能,强烈建议安装。PyMesh为这些库提供了轻量级封装,若缺少它们,部分功能将无法使用。依赖的库中还包括之前文章介绍的Mmg(Mmg:用于网格重构和优化的开源软件)。所有第三方库均作为子模块附加到代码仓库中,并会在 PyMesh 构建过程中自动编译。
各依赖库的功能说明:
下面是一些网格操作的实现算例。
对已有网格中的三角形长边重新划分,其它保持不变,把网格细化处理。