python вызывает функцию моментального снимка meshlab
Я новичок в meshlab, я не могу найти функцию в meshlabsever или pymeshlab, и я хочу сделать снимок в файлах obj. введите описание изображения здесь
2 ответа
Если это поможет, то через 2 года мне удалось сделать снимки серии файлов сетки с помощью Polyscope в Pymeshlab:
import polyscope as ps
ps.init()
ps.set_autocenter_structures(True)
ps.set_autoscale_structures(True)
ps.set_screenshot_extension(".jpg")
for mesh_file in all_meshes_files:
print(mesh_file)
ms.load_new_mesh(os.path.join(meshes_folder,mesh_file))
m = ms.current_mesh()
vertices = m.vertex_matrix()
faces = m.face_matrix()
ps_mesh = ps.register_surface_mesh("my mesh", vertices, faces)
ps.reset_camera_to_home_view()
ps.screenshot(os.path.join(meshes_folder, os.path.splitext(mesh_file)[0] + '_screenshot.jpg'))
ps.remove_all_structures()
ms.clear()
Идея состоит в том, чтобы установить среду Polyscope, последовательно загрузить сетки в Pymeshlab, получить грани/вершины сетки и передать их в Polyscope, который, к счастью, имеет функцию для снимков. Это запутанно, но функционально для быстрого обзора. Я не играл с камерой, текстурами и т. д.
Эта функция уникальна для meshlab и не существует ни в pymeshlab, ни в meshlabserver. Это невозможно реализовать, потому что они избегают создания контекста рендеринга. Это означает, что им не хватает таких понятий, как положение камеры, цвет фона или количество источников света, которые являются основой рендеринга. Если вам действительно нужно выполнить пакетный рендеринг набора файлов obj, вы можете попробовать использовать blender3D или pov-ray.