Meshlab как пользоваться: устранение ошибок в 3D моделях / Хабр
Содержание
устранение ошибок в 3D моделях / Хабр
MeshLab является довольно популярной программой для манипуляции и визуализации трехмерных моделей, предоставляющий широкий набор инструментов. Он среди прочего предоставляет возможности по восстановлению и устранению проблем и ошибок в 3D моделях. О некоторых таких возможностях я бы хотел рассказать в статье. Кого заинтересовало, прошу под кат.
Довольно популярной проблемой при работе с 3D моделями является возникновение отверстий (holes, gaps). Такие проблемы возникают из-за несовершенной процедуры реконструкции сцены или недостаточной точности и качества 3D камер типа Microsoft Kinect.
Мы можем восстановить поврежденные поверхности моделей и закрыть дыры в программе Meshlab. Meshlab включает специальный фильтр для задачи закрытия отверстий в 3D моделях.
В начале откроем Meshlab и импортируем модель: File > Import Mesh.
Здесь показан пример модели с отверстием:
Применим фильтр. Откроем в верхнем меню Filters > Remeshing, Simplification … > Close Holes
Откроется диалог настройки параметров:
Введем значение для параметра Max size to be closed и нажмем Apply. В моем случае хороший результат дало значение 210.
Результат применения фильтра:
Выглядит неплохо, не правда ли?
Как мы видим не нужно писать специальный скрипт для закрытия отверстий. Все работает «из коробки».
Решение проблемы с дубликат вершины в модели
После применения фильтра Close Holes при экспорте модели в obj файл могут возникнуть вершины-дубликаты, т.е. вершины с одинаковыми координатами. Это может привести к некорректной обработке модели при использовании библиотек типа OpenMesh.
Давайте создадим obj файл со следующим содержимым:
v 0 0 0
v 1 0 0
v 0 1 0
v 1 1 0
f 0 1 2
f 1 2 3
Создадим скрипт test_duplicates.py с использованием библиотеки OpenMesh (туториалы по ней можно посмотреть здесь)
import openmesh as om import numpy as np mesh_3 = om.read_trimesh('duplicate_vert_test.obj') print('Test duplicate vertices') for i, vh in enumerate(mesh_3.vertices()): print('Vertices adjacent to vertex ', i) for vh_n in mesh_3. vv(vh): print(vh_n.idx())
Запустим его
Vertices adjacent to vertex 0 2 1 Vertices adjacent to vertex 1 0 2 Vertices adjacent to vertex 2 1 0 Vertices adjacent to vertex 3 Vertices adjacent to vertex 4
Добавим дубликат вершины
v 0 0 0
v 1 0 0
v 0 1 0
v 1 1 0
v 1 0 0
f 0 1 2
f 4 2 3
Здесь мы добавили еще одну вершину с координатами 1 0 0.
Запустим скрипт еще раз
Vertices adjacent to vertex 0 Vertices adjacent to vertex 1 3 2 Vertices adjacent to vertex 2 1 3 Vertices adjacent to vertex 3 2 1 Vertices adjacent to vertex 4
Сейчас мы видим, что для вершины 0 нет соседних вершин, зато для вершины 3 появились две соседние вершины 2 и 1. Кажется, что вершина 4 перетянула к себе всех соседей вершины 0, с которой имеет одинаковые координаты.
Попробуем удалить дубликаты вершин на модели из примера выше. Импортируем модель:
Здесь мы видим множество цветных граней.
Применим специальный фильтр для удаления дубликатов вершин
Filters -> Cleaning and Repairing -> Remove duplicate Vertices
Результат применения фильтра:
Если мы применим фильтр на нашей первоначальной простой модели после экспорта модели мы получим obj файл следующего содержания
vn 0. 000000 -nan(ind) 0.000000
v 0.000000 0.000000 0.000000
vn 0.000000 0.000000 -0.785398
v 1.000000 0.000000 0.000000
vn 0.000000 0.000000 -0.785398
v 0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.570796
v 1.000000 1.000000 0.000000
# 4 vertices, 0 vertices normals
f 4//4 2//2 3//3
# 1 faces, 0 coords texture
На этом все. Удачи в использовании MeshLab для манипуляции с 3D моделями и до новых встреч.
Немного о фотограмметрии или создании модели из фото
Продолжаю рассказывать о своих находках, может кому-нибудь пригодится.
Как-то раз мне понадобилось отсканировать керамическую фигурку для её увеличения и распечатки в пластике. Поиск в сети дал результат — материал ‘Создание 3D модели голени’. Там весьма подробно описан процесс, за что автору спасибо, но есть некоторые мелочи, которые позволяют значительно улучшить результат.
Для сканирования нашего объекта (возьмём безе, оно же меренги) понадобится:
— любой фотоаппарат (хватит и мобильника, но лучше зеркалка для того, чтобы обеспечить хорошую глубину резкости)
— Meshlab c официального сайта http://www. meshlab.net/
— open-source программа Visual-SFM (автор Changchang Wu) http://ccwu.me/vsfm/ , точно работает версия Windows 64 bit, Windows 64 bit Cuda не испытывал, у кого получится с ней или с другими, отпишитесь
— дополнительный софт к программе Visual SFM https://code.google.com/archive/p/osm-bundler/downloads, качать папку osm-bundler-pmvs2-cmvs-full-32-64.zip — поднос Снудда из Ikea чтобы удобно было крутить объект, если нет, то пойдет и лист А4 с напечатанным текстом
— желательно производительный компьютер, время обработки напрямую зависит от мощности системы
Порядок действий:
А) Установка софта
1. Качаем и ставим Мешлаб
2. Скачиваем Visual, распаковываем и кидаем на рабочий стол или в папку, ВЕСЬ путь к которой НЕ содержит кириллицу (софт не понимает ничего, кроме английского)
3. Скачиваем дополнительный софт к программе Visual SFM, распаковываем, переходим
osm-bundler — osm-bundlerWin64 – software – pmvs – bin, копируем файлы в папку
VisualSFM_windows_64bit,
Повторяем с содержимым из osm-bundler — osm-bundlerWin64 – software – bundler – bin и
osm-bundler — osm-bundlerWin64 – software – cmvs – bin
Там, где при копировании в папку VisualSFM_windows_64bit просит заменить уже существующие файлы, заменяем.
4. Опционально — чтобы ноут не перегрелся, Панель управленияВсе элементы панели управленияЭлектропитаниеИзменение параметров схемы — изменить дополнительные параметры питания – управление питанием процессора – выставить максимум на 90 процентов
Софт и железо готовы.
Б) Фотографирование
Здесь несколько особенностей:
1. Программа создает облако точек, чтобы «увидеть» одну и ту же точку на разных фотографиях, ей нужны контрастные переходы. Кто фотографировал, знает, что автофокус хорошо цепляется там, где изображение имеет цветовой и световой переход. Софт видимо работает так же, как и автофокус на камере. Поэтому идеальный вариант для фотограмметрии – объект с матовой цветной поверхностью. Черный не распознает, слишком темный тоже.
2. Если объект глянцевый как керамическая статуэтка – делаем его пятнистым и полосатым с помощью водорастворимого красителя (детские фломастеры для разукрашивания лица). Так программа сможет «ухватиться» за похожие точки на разных фотографиях.
3. Работает принцип – софт видит только то, что видим мы на фотографиях, если нужно проработать какую-то часть, то ее нужно отфотографировать поближе
4. Фотографии должны быть качественными, резкими, сделаны при хорошем освещении.
5. Фотографировать можно обходя объект по кругу или вращая его на подносе. При этом область вокруг объекта тоже должна вращаться (если положить на наш поднос подушку, которая полностью закроет поднос, софт ее не распознает – будет думать, что все фото сделаны из одной точки, нужна имитация «обхода» объекта)
Сам процесс:
Клеим А4 с текстом (чтобы софт видел основание) на поднос, ставим объект на поднос, закрепляем камеру на штативе или держим в руках, стоим на месте, фотографируем каждый раз вращая поднос на 7-10 градусов.
Если фигурка маленькая с простой геометрией (типа безе) для отличного качества хватает 50 фотографий. Если статуэтка – 80. Чем больше, тем лучше, но дольше просчет модели.
B) Работа в программе
1. Открываем VisualSFM, загружаем фотографии (open Multiimages), выбираем все нас интересующие. Ждём. Под кнопкой File есть пиктограмма листа бумаги – это лог программы, можно кликнуть и наблюдать за тем, что происходит
2. Жмём по очереди слева – направо кнопки. Ждём. Долго ждём. Минут 20-30.
3. В конце выбираем папку, куда сохранить проект (только латиница в пути папки!)
4. После просчета находим файл ply. в папке проекта.
5. Открываем файл в Мешлаб, чистим модель от ненужного – сначала выбираем (левая стрелка), потом удаляем (правая стрелка)
6. Создаем полнотелую модель из облака точек: Filters, Remeshing Simplification and Reconstraction, Screened poison Surface Reconstraction, откроется окно, Reconstraction depth меняем на 9 и жмём ок.
7. Дальше File — Export Mesh, сохраняем в stl.
8. Открываем в Repetier Host, увеличиваем по максимуму и сохраняем через Repetier Host в stl. Каким то образом при этом значительно уменьшается вес самого файла.
9. Если есть какие-то ненужные пузыри, то отрезаем в редакторе типа Netfabb.
Готово. Если есть рац.предложения, как сделать качественнее или быстрее, просьба написать в комментариях.
MeshLab
MeshLab
система с открытым исходным кодом для обработки и редактирования 3D треугольных
сетки.
Предоставляет набор инструментов для редактирования, очистки, лечения, проверки,
рендеринг, текстурирование и преобразование мешей. Он предлагает функции для
обработки необработанных данных, полученных с помощью инструментов/устройств 3D-оцифровки, и для
подготовка моделей к 3D печати.
Предыдущий
Далее
Новости
Новая версия MeshLab и PyMeshLab: 2022.02
28/02/2022
Мы выпустили MeshLab и PyMesh2Lab с новыми улучшениями и исправлениями! Вы можете проверить больше
подробности здесь
и тут.
Выпущены MeshLab и PyMeshLab 2021.10
29.10.2021
Выпущены MeshLab и PyMeshLab 2021.10, с множеством
исправления и новые функции! Вы можете проверить больше
подробности здесь
и тут.
Вышла MeshLab 2021.07
23.07.2021
Вышла MeshLab 2021.07! В этой версии мы представляем поддержку
несколько форматов файлов (*.gltf, *.glb, *.nxs, *.nxz, *.e57) и
совершенно новый плагин для точной логической сетки. Скачать можно в разделе загрузок, или на гитхабе
страница выпуска.
Вы можете проверить все подробности о новом выпуске здесь.
MeshLab 2021.05 выпущен
27.05.2021
Вышла версия MeshLab 2021.05! Вы можете скачать в загрузке
раздел или на гитхабе
страница выпуска.
Вы можете проверить все подробности о новом выпуске здесь.
Вышла новая версия 2020.12!!
12.01.2020
Выпущен MeshLab 2020.12. С этой версией мы отклоняем
meshlabserver в пользу PyMeshLab,
наша новая библиотека Python для пакетной обработки сетки с использованием MeshLab
фильтры.
Мы также выпускаем новую версию, которая хранит данные с двойным
точность. Для получения более подробной информации вы можете прочитать обсуждение
на нашей странице GitHub.
Список изменений:
- множество исправлений ошибок
- Улучшения графического интерфейса
- новая версия 2020.12d, хранящая данные с двойной точностью
(бета!!)
MeshLab 2020.07 выпущен
07.06.2020
MeshLab 2020.07 вышел! Вы можете скачать в загрузке
раздел или на гитхабе
страница выпуска.
Список изменений:
- новый плагин «Глобальная регистрация» на основе библиотеки OpenGR;
- опция реверса колеса;
- позволяет ассоциировать расширения файлов и открывать
файлы на внешних дисках; - экспортер u3d стал более стабильным и работает на всех платформах;
- удалена поддержка подключаемых модулей XML и зависимостей QtScript;
- VisualSFM (и некоторые другие форматы) вывод *. nvm, *.rd.out
проекты, поддерживаемые meshlabserver - различные исправления
Snap-пакет
MeshLab 2020.06 выпущен
06.01.2020
MeshLab 2020.06 вышел! Вы можете скачать в загрузке
раздел или на гитхабе
страница выпуска.
Список изменений:
Из-за устаревания QtScript и всех связанных с ним проблем,
мы отказываемся от поддержки плагинов XML из MeshLab, и
поэтому все плагины XML были преобразованы в классические
плагины в этой версии MeshLab. Задействованные плагины:
- Экранированный Пуассон;
- Мера;
- Вороной;
- Взаимная информация;
- Скетчфаб;
В связи с этим переносом все старые сценарии .mlx MeshLab, включающие один из
эти плагины могут не работать на MeshLab и MeshLabServer 2020. 06.
Начиная с MeshLab 2020.07, подключаемые модули XML больше не будут компилироваться и
они больше не могут быть загружены.
Новый MeshLab 2020.03 и автоматическое развертывание
26.03.2020
Мы рады сообщить, что вышла MeshLab 2020.03! Мы создали
автоматическая система на нашем
Репозиторий Github для автоматического выпуска версии MeshLab
каждое первое число месяца. Ultimate-релиз можно найти в релизе
страница.
Примечание для версии Windows: перед установкой MeshLab 2020.03, пожалуйста,
удалите вручную любую старую версию MeshLab. Это известная ошибка
установщик и будет исправлено как можно скорее в будущем
версии.
SGP Software Award
06.06.2017
Мы с гордостью сообщаем, что 6 июля, в
Симпозиум Eurographics по обработке геометрии (SGP), MeshLab
была удостоена престижной награды Eurographics Software Award !
Награда вручена за » вклад в
научного прогресса в обработке геометрии, сделав
общедоступное программное обеспечение, которое другие могут воспроизвести
результаты и в дальнейшем использовать их в своей исследовательской работе «.
MeshLab 2016 Выпущено
23.12.2016
Спустя очень долгое время огромный процесс переписывания, и сильно
новые усилия наконец-то вышла новая версия MeshLab!
- Полная переработка внутренней системы рендеринга. Огромный рендеринг
скорость вперед! - Экранированная реконструкция поверхности Пуассона обновлена до самого
Последняя версия. - Новые фильтры трансформации.
- Новые способы получения метрической информации из ваших моделей.
- Матрицы преобразования теперь используются более единообразно среди
фильтры. - Альфа-значение теперь правильно используется всеми фильтрами, связанными с цветом.
- Улучшение и устранение опечаток в различных текстах справки/описания.
- Прямая загрузка моделей в SketchFab
- Регистрация растра на 3D модели на основе 2D/3D
переписки - Исправление ошибок почти во всех фильтрах.
Скачать
MeshLab 2022.02
28.02.2022
Вин 64
MacOS
Linux AppImage Linux FlatPak Исходники
Другие выпуски Образцы сеток
Функции
Поддержка
Мистер
P. Учебники YouTube
Основы
В этом плейлисте показаны основные концепции 3D-модели.
обработка в MeshLab.
Features
В этом плейлисте описаны интересные возможности MeshLab:
редактировать, фильтры, украшения, которые могут быть полезны в вашем
повседневная жизнь, связанная с «обработкой сетки».
3Д
Сканирование конвейера
В этом плейлисте описаны основные этапы сканирования
конвейер, выполненный с помощью MeshLab.
Очистка
В этом плейлисте описывается способ «очистить» сетку путем удаления
нежелательная геометрия или атрибуты.
Вопросы и форум
Для вопросов, разъяснений и любых
какие-то сомнения по поводу MeshLab и как получить наилучший результат
с различными фильтрами используйте stackoverflow .
Будьте конкретны и отмечайте свои вопросы с помощью MeshLab.
Поиск
Вопрос Задать вопрос
Вопрос
Отчет об ошибке
Пожалуйста, сообщите о github ТОЛЬКО ошибки и
неисправность. Пожалуйста, не отправляйте файлы, так как проблемы с github
вопросы о том, как использовать MeshLab.
Прежде чем выдавать ошибку, пожалуйста , внимательно прочитайте как
сообщить об ошибке Сообщить об ошибке
Хвастовство
За то, что вы делитесь хорошими фотографиями, сообщаете об интересных
опыт, благодарность (или порицание) разработчиков или просто
хвастаясь своими последними результатами, следите за официальной
Страница MeshLab в фейсбуке.
Помните: не задавайте технические вопросы на Facebook. (фейсбук
трудно найти и плохо индексировать: любой
усилия, затраченные на ответы на технические вопросы, немного
зря)
MeshLab
на
Лицензирование
Источники MeshLab распространяются под лицензией GPL
3.0 Схема лицензирования.
Название «MeshLab»
Торговая марка EUIPO, принадлежащая
CNR.
логотипов MeshLab ( ) распространяются под номером
Creative
Commons Attribution-Sharealike 4.0 Международная лицензия
и их можно свободно использовать внутри любого проекта викимедиа.
Ссылки
Самый простой способ выразить признательность системе MeshLab — это
не забывайте цитировать его всякий раз, когда вы использовали некоторые из его функций.
Есть много публикаций, связанных с MeshLab, в случае сомнений используйте
первое, но, пожалуйста, просмотрите список и процитируйте также все
правильные.
Общая информация: MeshLab — это система с открытым исходным кодом, разработка которой с 2005 года ведется Лабораторией визуальных вычислений ISTI-CNR.
Его скачали более 3 миллионов раз, и, согласно обновляемой статистике, в настоящее время им пользуются более 100 000 пользователей.
{{pi.description}} | {{pi.paperAuthors}} {{pi.paperTitle}} {{pi.paperVenue}}, {{pi.paperYear}} | |
Узнайте, как исправить 3D-файлы с помощью программного обеспечения Meshlab
Центр обучения 3D
Посмотреть все категории
Комплектация:
Введение
Что такое программа Meshlab?
Почему вам следует использовать Meshlab?
Ограничение размера файлов для 3D-печати
Как уменьшить количество полигонов в вашем 3D-файле с помощью Meshlab
Введение
Мы в Sculpteo склонны думать, что образование — лучший инструмент для самосовершенствования. Поскольку 3D-моделирование полностью связано с 3D-печатью, мы постоянно стараемся предоставить вам полезные руководства о том, как подготовить вашу модель к 3D-печати с использованием вашего любимого программного обеспечения САПР. В этой статье мы собираемся изучить, что такое программное обеспечение Meshlab, как исправить ваши 3D-файлы с помощью программного обеспечения Meshlab и почему полезно использовать его для ограничения размера вашего 3D-файла и сокращения полигонов.
Что такое программа Meshlab?
Meshlab – это программа для работы с треугольными сетками. Он предоставляет набор инструментов для редактирования, очистки, лечения, проверки, рендеринга, текстурирования и преобразования мешей. С Meshlab вы можете обрабатывать необработанные данные, созданные с помощью инструментов 3D-оцифровки, и готовить свои 3D-модели для 3D-печати. Он очень легко доступен, так как это бесплатное программное обеспечение, доступное для Windows, OSX и Linux. Чтобы установить Meshlab, загрузите его здесь.
Почему вам следует использовать Meshlab?
Вы когда-нибудь пытались загрузить свой дизайн в нашу онлайн-службу 3D-печати, но не могли импортировать свой файл? При загрузке 3D-файла для 3D-печати могут возникать некоторые ошибки, поэтому мы стараемся постоянно предоставлять вам советы и решения о том, как справляться с такими проблемами. Одна из наиболее распространенных причин сбоя загрузки файла заключается в том, что он слишком тяжелый. Чтобы не получить тяжелый файл, постарайтесь, чтобы его размер не превышал 50 МБ, а 3D-файл должен содержать менее 1 миллиона полигонов. В этих случаях Meshlab — это программное обеспечение, которое вы должны использовать, чтобы настроить файл в соответствии с этими ограничениями.
Кроме того, Meshlab является очень полезным программным обеспечением, если вы хотите преобразовать формат вашего файла. Даже если на платформе Sculpteo вы можете загружать более 30 форматов файлов, с Meshlab вы можете импортировать свой файл и экспортировать его в любом из поддерживаемых нами форматов файлов.
После этого ваш только что отрендеренный новый файл будет готов для загрузки и 3D-печати!
Ограничение размера файлов для 3D-печати
Как упоминалось выше, размер 3D-файла не должен превышать 50 МБ. Большой размер файла не обязательно означает лучшее качество печати. В онлайн-сервисе 3D-печати Sculpteos вы можете загружать файлы любого формата, например .stl или .obj, или даже .zip (для уменьшения размера файла), если его размер не превышает 50 МБ.
Кроме того, загружаемый 3D-файл не должен содержать более 1 миллиона полигонов. Полигоны — это грани поверхности, в которых интерпретируется 3D-модель, как показано на фото ниже.
Кредит: meshlab.net
Конечно, чем больше полигонов, тем плавнее будут выглядеть кривые модели и тем тяжелее будет файл. Но есть баланс между количеством полигонов и размером файла, который дает приличное качество печати, и это то, за чем вы должны следить.
Чтобы получить более подробную информацию о подходящих размерах 3D-файлов, вы можете получить дополнительную информацию, прочитав нашу запись в блоге о том, как уменьшить размер файла . STL.
Как уменьшить количество полигонов в вашем 3D-файле с помощью Meshlab
Поняв необходимость удерживать сложность 3D-файла в этих пределах, давайте посмотрим, как этого добиться. Сначала вам нужно скачать и установить Meshlab, а затем импортировать файл. Открыв файл, вы увидите количество содержащихся в нем полигонов в нижней части экрана.
Затем перейдите в «Фильтры» > «Повторное создание сетки, упрощение и построение» > «Обнаружение свертывания квадратичных краев» (Mac).
После того, как вы выберете «Обнаружение свертывания квадратичных краев», появится следующая панель параметров, которую вы настраиваете вручную.
uc3dp.com
Рассмотрим эти параметры более подробно.
- Целевое количество граней : Здесь введите количество полигонов, которое вы хотите, чтобы ваш файл имел. Эта процедура называется сокращением полигонов, также известной как прореживание сетки.
- Порог качества : Вы можете выбрать число от 0 до 1. Рекомендуемое значение — 1, поскольку оно дает удовлетворительные результаты. Этот параметр влияет на форму исходной модели (например, лица плохой формы и т. д.). Таким образом, чтобы программное обеспечение рассчитало исходную форму модели только с гранями правильной формы, необходимо ввести большое количество граней, поскольку это дает больше свободы в окончательной форме треугольника.
- Сохранить границу сетки: Здесь вы должны нажать на эту опцию, так как она связана с сохранением границ сетки. Поскольку ваш файл проходит процесс упрощения, очень важно не разрушить границы сетки, такие как открытые края и т. д..
- Сохранить обычное: Здесь также следует выбрать этот параметр, если он еще не включен по умолчанию. С помощью этого действия вы предотвращаете переворачивание нормалей граней программным обеспечением и сохраняете ориентацию поверхности.
- Оптимальное положение упрощенных вершин : Этот параметр также должен быть включен по умолчанию.
Всего комментариев: 0