0

我正在尝试使用 Trimesh 从 .obj 文件(来自 ShapeNet 数据集)加载网格,然后使用该repair.fix_winding(mesh)函数。

但是当我加载网格时,通过

trimesh.load('/path/to/file.obj')trimesh.load_mesh('/path/to/file.obj'),

返回的对象类为 Scene,与 不兼容repair.fix_winding(mesh),只接受 Trimesh 对象。

如何强制它加载并返回 Trimesh 对象或将 Scene 对象解析为 Trimesh 对象?或者任何其他方法来修复三角形的缠绕?

使用:

蟒蛇 3.6.5

Trimesh 3.0.14

macOS 10.14.5

4

3 回答 3

0

load_mesh 有一个选项作为 Trimesh 构造函数传递,如文档中所述。

https://trimsh.org/trimesh.html?highlight=load_mesh#trimesh.load_mesh

这是一个示例代码

mesh= t.load_mesh('./test.stl',process=False)
mesh.is_watertight

第二行“.is_watertight”是 Trimesh 的一个属性,所以如果它作为 Trimesh 成功导入,您将得到 True。

于 2019-07-29T19:17:09.883 回答
0

使用当前的 trimesh 版本(3.9.42),您需要使用trimesh.loadwith force='mesh'

trimesh.load('/path/to/file.obj', force='mesh')

https://trimsh.org/trimesh.html?highlight=load#trimesh.load

于 2022-01-17T16:15:55.137 回答
0

我也有同样的问题。您可以访问场景的“几何”成员,但我不知道原始网格是如何分割成多个的。下列的。

于 2019-07-24T13:00:58.597 回答