Файл obj загружен как объект Scene вместо объекта Trimesh
Я пытаюсь загрузить сетку из файла.obj (из набора данных ShapeNet) с помощью Trimesh, а затем использовать 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
Тримеш 3.0.14
MacOS 10.14.5
3 ответа
С текущей версией тримеша (3.9.42) вам нужно использовать
trimesh.load
с
force='mesh'
:
trimesh.load('/path/to/file.obj', force='mesh')
У меня точно такая же проблема. Вы можете получить доступ к "геометрии" члена сцены, но я понятия не имею, как исходная сетка делится на несколько. Следующий.
У load_mesh есть опция, которая будет передана как конструктор Trimesh, как объяснено в документации.
https://trimsh.org/trimesh.html?highlight=load_mesh
вот пример кода
mesh= t.load_mesh('./test.stl',process=False) mesh.is_watertight
вторая строка ".is_watertight" является атрибутом Trimesh, поэтому вы получите True, если он успешно импортирован как Trimesh.