【问题标题】:obj file loaded as Scene object instead of Trimesh objectobj 文件作为 Scene 对象而不是 Trimesh 对象加载
【发布时间】:2019-11-30 23:09:22
【问题描述】:

我正在尝试使用 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 对象?或者任何其他方法来修复三角形的缠绕?

使用:

Python 3.6.5

Trimesh 3.0.14

MacOS 10.14.5

【问题讨论】:

    标签: python trimesh


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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。

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2020-09-28
          • 2016-07-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-24
          • 2012-11-24
          • 1970-01-01
          • 2015-12-28
          相关资源
          最近更新 更多