使用 trimesh 从 glb 文件加载网格
Load Mesh from a glb file using trimesh
我是 3D 几何的新手。我正在尝试使用 python 库 trimesh 从 glb 文件中提取网格。我想不出这样做的正确方法。
我的要求是我需要一个对象的 3D 网格(作为邻接矩阵),以便我可以对它们应用非欧几里得卷积运算符。
有什么关于我应该看什么的建议吗?
您可以使用 trimesh.load
加载您的 glTF 文件。请注意,return 类型取决于模型文件的文件类型。对于 glTF 文件,它将 return trimesh.Scene
的一个实例。这个场景有各种各样的属性,比如相机、灯光还有几何体。这是因为 glTF 文件可以包含更多的模型数据。每个几何体都是 trimesh.Trimesh
的一个实例,它是几何体的基础 class,并且有一个 edges_sparse
属性 表示模型的邻接矩阵。
总而言之:
scene = trimesh.load("some_file.glb")
geometries = list(scene.geometry.values())
geometry = geometries[0]
adjacency_matrix = geometry.edges_sparse
使用文档来解决这个问题有点乏味。我倾向于查看源代码或在 IDE:
中打开调试器
trimesh.Scene
: https://github.com/mikedh/trimesh/blob/master/trimesh/scene/scene.py
trimesh.Trimesh
: https://github.com/mikedh/trimesh/blob/master/trimesh/base.py
我是 3D 几何的新手。我正在尝试使用 python 库 trimesh 从 glb 文件中提取网格。我想不出这样做的正确方法。 我的要求是我需要一个对象的 3D 网格(作为邻接矩阵),以便我可以对它们应用非欧几里得卷积运算符。
有什么关于我应该看什么的建议吗?
您可以使用 trimesh.load
加载您的 glTF 文件。请注意,return 类型取决于模型文件的文件类型。对于 glTF 文件,它将 return trimesh.Scene
的一个实例。这个场景有各种各样的属性,比如相机、灯光还有几何体。这是因为 glTF 文件可以包含更多的模型数据。每个几何体都是 trimesh.Trimesh
的一个实例,它是几何体的基础 class,并且有一个 edges_sparse
属性 表示模型的邻接矩阵。
总而言之:
scene = trimesh.load("some_file.glb")
geometries = list(scene.geometry.values())
geometry = geometries[0]
adjacency_matrix = geometry.edges_sparse
使用文档来解决这个问题有点乏味。我倾向于查看源代码或在 IDE:
中打开调试器trimesh.Scene
: https://github.com/mikedh/trimesh/blob/master/trimesh/scene/scene.pytrimesh.Trimesh
: https://github.com/mikedh/trimesh/blob/master/trimesh/base.py