Meshlab руководство на русском

Многих интересует, можно ли самому создать модель для 3D-печати и сложно ли это. В этой статье мы попытаемся рассказать, как это сделать.

3D-печать — это способ создания объемных объектов путем послойного нанесения материала на основу.

С помощью 3D-принтера можно создавать изделия такой формы, которая не может быть реализована с применением других технологий. Возможна печать одного объекта внутри другого, полых деталей, подвижных частей, сложных изгибов и других трудоемких форм.

Разработано множество технологий 3D-печати: стереолитография (SLA), селективное лазерное спекание (SLS), моделирование методом наплавления (FDM) и другие. Конечно, у каждого метода есть свои плюсы и минусы.

При подготовке модели к печати, например, из керамики, стоит обратить внимание на конструктивные особенности материала, прежде чем выбирать способ печати.

В случае керамики, минимальная возможная толщина стенки изделия — 3 мм, а детализация — 2 мм. При этом в SLS-печати минимальная толщина равна 0,7 мм, а самая тонкая деталь может быть диаметром 0,2 мм — очень важно учитывать такие особенности.

Еще один важный совет — 3D-печать недешевый процесс, поэтому лучше пытаться использовать как можно меньше материала.

Как же создать модель для печати на 3D-принтере?

Шаг 1. Моделирование 3D-прототипа

Напечатать можно практически любую модель, от органичных скульптур, сделанных в ZBrush, до математических абстракций или даже вашего персонажа в компьютерной игре. Но следует помнить, что 3D-модель станет реальной вещью, поэтому не нужно забывать о силе тяжести, распределении веса и прочности.

Например, если вы хотите напечатать фигурку, проверьте, сможет ли она стоять на своих двух — или больше — ногах или стоит добавить плоскую подставку.

Простую модель, сделанную в 3D-редакторе, надо еще подготовить к печати

На картинке показано моделирование чашки кофе c 8 ручками, также известной как “Octocup”. Она должна устойчиво стоять на столе и удерживать жидкость (ведь в этом и есть функция чашки), поэтому придать ей сумасшедшие асимметричные формы не получится. Иначе чашка просто завалится набок! Предпочтительнее всего сохранить ее в форматах .obj или .stl.

Шаг 2. Формируем пустоты в 3D-модели

Мы уже упоминали, что для экономии материалов желательно сделать 3D-модель полой. Опять же, в зависимости от материала и способа 3D-печати, толщина стенки может варьироваться. В данном случае стоит остановиться на 3 мм.
Использовать будем программу MeshLab, которая лучше всего подходит для такого рода задач.

Все, что нужно — создать смещенную копию модели с желаемой толщиной внутри основной.
Используйте следующие пункты в верхнем меню: Filters > Remeshing > Uniform Mesh Resampling (если у вас другая программа, названия могут отличаться). Настройте параметры: Precision 1.0, Offset value -3 (это задает толщину стенки) и проставьте галочки в Clean vertices и Multisample. Таким образом, получится отличная внутренняя поверхность.
Теперь надо развернуть нормали в другую сторону, чтоб модель определялась как полая — для этого через меню View > Show layer dialog выделяем нужный слой, а затем используем Filters > Normals > Invert Faces Orientation для инвертирования нормалей.

Если не инвертировать нормали при обработке модели, напечатать ее не выйдет

Для сохранения файла выбираем следующее: Layer > Flatten Visible Layers File > Export Mesh as.

Затем необходимо сделать небольшое отверстие для того, чтоб внутри изделия не осталось избыточного материала. Для этого сгодится любой 3D-редактор. Необходимый диаметр отверстия — как правило, двойная толщина стенки, то есть 6 мм в нашем случае.

Если не проделать дырку, внутри 3D-модели может остаться лишний материал

Шаг 3. “Подчищаем” 3D-прототип

3D-принтеры довольно придирчивы к качеству моделей, поэтому данному этапу нужно уделить особое внимание. Убираем соприкасающиеся грани, синхронизируем направления нормалей. Для дальнейшей подготовки мы будем использовать netfabb Studio Basic, бесплатную программу, предназначенную специально для этого.

Превратить сетку в сплошную модель необходимо для 3D-печати

Открываем файл и запускаем автоматическую обработку, которая закроет дырки в модели. Для этого используем Extras > Repair, а затем — Automatic Repair > Apply Repair. Чтобы сохранить, жмем Part > Export part > As STL (binary) и вводим имя файла.

Затем вам останется только принести диск или флэшку с файлом в центр 3D-печати, где его транслируют в специальный G-код, то есть инструкции для машины по печати объекта. И вскоре вы получите готовый и еще теплый макет, который совсем недавно существовал только на экране компьютера!

Описание программы

MeshLab – это целостная система, имеющая в своем распоряжении функции, предназначенные для обработки и изменения 3D моделей, в основном неструктурированных.

Программа беслатна и предназначена в первую очередь для обработки моделей, получаемых после операции трехмерного сканирования.

В своем распоряжении MeshLab имеет обширный инструментарий, позволяющий очищать, редактировать, восстанавливать, визуализировать и конвертировать 3D модели. Программа полностью совместима с Windows 7, Mac OS и Linux.

Над всеми пользовательскими и загруженными работами можно проводить различные действия: очищать выбранные элементы, исправлять недочеты, проверять на корректность и даже конвертировать в другой формат.

Интерактивные возможности работы с MeshLab:

• Интерактивный выбор и удаление элементов модели. Применимо даже к большим объектам;
• Интерактивное рисование с возможностью выбора, сглаживания и окраски объекта.

Работа со многими форматами на входе и выходе:

• Импорт: .PLY, .STL, .OFF, .OBJ, .3DS, COLLADA, .PTX, .V3D, .PTS, .APTS, .XYZ, .GTS, .TRI, .ASC, .X3D, .X3DV, .VRML, .ALN;

• Экспорт: .PLY, .STL, .OFF, .OBJ, .3DS, COLLADA, .VRML, .DXF, .GTS, .U3D, .IDTF, .X3D.

Фильтры очистки модели:

• Удаление дублированных, повторяющихся, не имеющих ссылки вершин и пустых точек;
• Удаление небольших изолированных участков;
• Последовательное объединение;
• Автоматическое заполнение отверстий и дыр;
• Поверхностная реконструкция по точкам;
• Подразделение поверхностей на слои;
• Сохранение особенностей сглаживания и всех фильтров;
• Различные цветовые фильтры;
• Возможность обозначения границ;
• Интерактивное рисование объектов;

Другие возможности программы:

• Цветная живопись;
• Возможность выбирать инструмент и цвет для рисования;
• Наличие многоступенчатого сглаживания;
• Рендеринг, базирующийся на OpenGL Shader, совместимый с проектировщиком Typhoon Lab Shader;
• Возможность крупного рендеринга (до 16kx16k) для высококачественной печати;
• История всех совершенных действий и примененных фильтров может быть использована на другие модели и проекты или же сохранена в памяти для дальнейшего использования;
• Расширенные плагины, базирующиеся на архитектуре рисования объектов с новыми процессами обработки и кастомизации, поддержка работы с новыми форматами.

Скачать MeshLab:

Скачать бесплатно актуальную версию для вашей ОС

Время на прочтение
3 мин

Количество просмотров 7.3K

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 моделями и до новых встреч.

Introduction: Using Meshlab to Clean and Assemble Laser Scan Data

Meshlab is an open source software program used to manipulate and edit mesh data. This tutorial will specifically show how to assemble, clean and reconstruct data from a 3D laser scanner. The techniques used with the scanner used here should apply to scan data from any machine, but first read any documentation included with your system before beginning.

One must use their judgement when scanning the object to be sure to capture enough data to create the best mesh possible. The alligator head used here required around 30 scans taken from various angles. Typical scan sets may be as small as 5 and as large as 50. This was a high number due to all of the hidden geometry inside the mouth. For scans taken with a calibrated rotary turntable, the coarse alignment steps may be skipped entirely. However, it is still recommended to do a fine alignment to eliminate any error inherent to the turntable. As with any software, backup your work and save frequently.

Step 1: Cleaning Scan Data

Start by opening the first scan file. Chances are high that the object will be surrounded by a lot of extra data that does not need to be included in the final mesh. The easiest way to remove this data is to use Select Faces in a Rectangular Region tool. It allows you to use a marquee style selector to choose faces that you would like to remove. After selecting them, go to Filters/Selection/Delete Selected Faces and Vertices to remove them. This not only deletes the faces, but also removes the underlying point data, resulting a a cleaner mesh and smaller file size. Repeat this step for every scan and it is helpful to save the clean file as a new version, leaving the original intact. Save often!

Step 2: Layering Mesh Files

Open up the new clean version of the first mesh file. Then go to File/Open as new layer and select the next two mesh files. This will import the new mesh files to separate layers, similar to an image editing program. Click on the layer icon to open the Layer Dialog window that allows you to view, hide or lock any of the layers.

Step 3: Glueing the Meshes

You will now have three separate layers each with meshes that are not aligned. Close the Layer Dialog menu and click on the Align icon to open the Align tool. This tool is used to reposition the separate meshes in relation to each other. Click on the first mesh file in the menu and choose Glue Mesh Here. This will affix the mesh to a set location and allows the other meshes to be aligned to it.

Next, choose the second mesh and click on Point Based Glueing. This feature will use 4 or more user selected points to approximate the alignment of the second mesh in relationship to the first. When the alignment window opens it will display the first glued mesh and the second mesh, both with different colors to assist in the point selection. Rotate both models around and position them in a similar manner. Try to place them in a position that shows as much overlapping information as you can. Then, choose 4 or more similar points on each mesh. They don’t have to be exact, but be as accurate as you can. After selecting the points, click OK.

If the selected points were close, the two meshes should automatically align. Again, they will not be exact, but should be extremely close. If you are happy with the alignment, click the Process button to align them even more accurately and to glue them in place.

Step 4: More Glueing

Repeat the same process for the third mesh. If for any reason the mesh did not align as accurately as you would like, click the Unglue Mesh button and repeat the point based glueing process. This time choosing different points on the mesh.

Click the process button after the third mesh is aligned and save your new file. Processing the meshes after each new mesh is glued in place increases the accuracy of alignment. This technique provides the software with more data to help determine the appropriate location. As more and more meshes are aligned, the processing time increased, but the improved accuracy is worth the wait.

I suggest saving your work as project file at this stage because the project files automatically loads each layer into your file instead of having to manually open each file as a new layer all over again.

Step 5: Tips on Alignment

The default ICP parameter parameters allow you to fine tune how one mesh is aligned to another.

Sample Number — this is the number of samples it pulls from each mesh to compare to the other meshes. You do not want to make this number too big. A small sample typically works quiet well. 1,000 to 5,000 is usually plenty.

Minimal starting distance — this ignores any samples that are outside of this range. Typically for a manually aligned object you want this to be large enough to encompass your ‘point picking’ error. A value of 5 or 10 (in millimeters) is usually a good start. Once the initial alignements are complete, drop it down to 1mm to ‘fine tune’

Target distance — this tells the algorithm when to stop. This is a function of your scanner and should be approx. equal (or slightly under) the specified error floor. Any smaller and you are just wasting time. You can also set it higher to align faster.

Max iteration number — related to target distance, it tells it when to stop regardless of target distance setting.

The remainder of the parameters are typically not needed.

In summary:

For a manually aligned scan, perform a rough align, then a fine align.
For a rotary aligned scan, perform a fine align.

For rough alignment — start with a small sample number, large starting distance and large target distance.
For fine alignement — start with a higher sample number, smaller starting distance and smaller target distance.

Also, running the alignment repeatedly will often serve to fine tune the alignment.

Step 6: Flattening the Layers

After all the mesh files have been aligned and processed, click on the Layer icon to open the Layer Dialog menu. Double check to make sure that all of the aligned layers are visible. Then go to Filters/Layer and Attribute Management/Flatten visible layers. A pop-up window will open displaying the different options. I tend to leave the default options since I have saved often and it is easy to go back to a previous version. Click Apply. This will flatten all of the layers into one mesh that can then be run through a smoothing filter. At this point, if the scan data included color information, Meshlab will remove it from the new combined mesh.

Step 7: Mesh Smoothing and Reconstruction

To create a smoothed mesh, click on Filters/Remeshing, simplification and reconstruction/Poisson Reconstruction. A pop-up window will open with several options. The settings that have brought the best results so far a and Octree Depth — 11, Solver Divide — 7, Sample per Node — 1 and Surface offsetting — 1, but you may find that different settings provide better results. Click Apply and let the process run its course.

It may take a while depending on the speed of your computer and the size of the mesh file. Once the process is finished, click on the Layer Dialog icon and hide the original mesh file. If you don’t do this, it may appear that the process has failed. The new mesh will be watertight, meaning that there are no holes in the mesh and can be exported for rapid prototyping.

Meshlab is capable of exporting the watertight mesh into a variety of file formats such as .STL, .OBJ, .PLY, .3DS and .U3D among others. This makes it a great tool for converting your mesh into a format that can be imported into a 3D modeling program such as 3D Studio Max, Silo 3D, Blender or to integrate your file into .PDF file using Adobe Acrobat 9.

Step 8: Exporting the Mesh

Meshlab is capable of exporting the watertight mesh into a variety of file formats such as .STL, .OBJ, .PLY, .3DS and .U3D among others. This makes it a great tool for converting your mesh into a format that can be imported into a 3D modeling program such as 3D Studio Max, Rhino, Silo 3D, Blender or to integrate your file into .PDF file using Adobe Acrobat Professional 9. Just go to File/Save As and choose the appropriate file format from the drop down menu. Importing the new files varies depending on the software you are using, but is generally a simple process.

Дальше будет интересная информация :)  Особенно для тех, кто был (до сегодняшнего дня) не очень знаком с компьютерной графикой..

Прежде чем начнем, нам понадобится программа MeshLab, скачать её можно вот тут.

Если вы успешно преодолели описанные в прошлых постах этапы, то у вас должна быть папочка в которой лежит файл с расширением PLY .
У меня этот файл лежит вот по такому пути:
d:ResearchPhotogrammetryPPTtemposm-bundler-p3ydoupmvsmodelsoption-0000.ply
Повторюсь, в этом файле хранится облако точек (Point cloud — на бусурманском), сгенерированных  на основе принципов фотограмметрии . То есть это еще не полноценный трехмерный объект, который можно, например, напечатать на 3D принтере..  
Что бы увидеть это облако точек — запускаем программу MeshLab и перетаскиваем в неё наш *.PLY файл..
Файл загружается и мы должны увидеть примерно нечто такое:

Это и есть облако точек.. это отчетливо видно, если приблизиться поближе:

Размер точек можно регулировать, если зажать клавишу CTRL и крутить колёсико мышки:

Теперь нужно включить отображение слоев, для этого нажимаем воот эту кнопочку :

Сейчас у нас всего 1 слой — исходное облако точек.
Моя задача сейчас превратить эти точки в поверхность..  Делать это будем в два этапа.


Этап 1 : создаем упрощенную основу..

1) Проверяем, что точки ориентированы правильно. Для этого идем в меню render и включаем режим отображения нормалей — «show normalcurvature»:

Появляются длинные синие линии (как шерсть:). По этим линиям хорошо видно ориентацию точек.. у меня ориентация сейчас вполне традиционная.. так что можно двигаться дальше.
Но если у вас вдруг ориентация хорошая как на изображении, то её всегда можно инвертировать.. но это отдельная тема..

2) Теперь упрощаем само облако точек.. что бы затем создать на нём упрощенную основу..
(нормали можно отключить, что бы не мешали)
Что бы произвести какие то изменения с объектом в MeshLab его нужно «прогнать» через так называемый «фильтр». Этих фильтров огромное количество на все случаи жизни :) .. В данном случае нам нужен фильтр «Poisson-disk Sampling» :

Появляется окно настроек фильтра.. Нас интересует два параметра:
«Number of samples» — вводим там 20000.
Это означает что после прохода через этот фильтр от исходного облака точек останется ровно 20 тысяч точек. Сейчас же в моем облаке 123309 точек. Информация об этом написана внизу экрана ..
Второй параметр который нас интересует — нужно поставить галочку напротив «Base Mesh Subsampling«..
В итоге должно мои настройки выглядят так:

Ещё обратите внимание на белое поле справа — это список слоёв.. Пока что в нём всего один наш базовый слой..  Но как только я применю фильтр — то появится новый слой — с 20 тысячью точек..  И так, нажимаем кнопку «Apply»

Как я и предсказывал — появился новый слой.. К стати, напротив каждого слоя слева есть значек «глаз».. если его выколоть (тыкнуть в него мышкой) — то слой выключится, не будет отображаться . Так я и сделал — отключил исходный слой и теперь вижу только один новый.

Еще один немаловажный момент — порядок. Мой опыт крайне убедительно говорит — в деле, которое предполагает в дальнейшем усложнение — лучше изначально стараться придерживаться какого то порядкаправил, который в дальнейшем позволит легко ориентироваться в проекте..
В случае с мешлабом порядок можно начинать с того, что давать всем слоям понятные имена..
Сейчас у нас два слоя :
первый — это исходный материал.. я его назову «

SourcePCloud

«
второй — упрощенный пойнтклауд(облако точек).. я его назову «

simplifiedPCloud

» ..
Что бы переименовать слой — достаточно нажать правой кнопкой мышки по нему и выбрать «Rename Current Mesh«:

Вот так теперь выглядят мои слои:

3) И вот теперь, наконец, мы можем создать упрощенную основу для нашей финальной детализированной геометрии..  Обязательно проверьте, что в списке слоев выделен слой с только что созданным  упрощенным облаком точек!
На этот раз нам нужен фильтр «Surface reconstruction: Poisson» :

В появившемся окне настроек вводим следующие значения :
Octree Depth =12
Solver Divide = 7

Нажимаем кнопку «Apply»…
Здесь может произойти несколько интересных ситуаций.. Я очень кратко опишу их.
Если всё нормально, то спустя некоторое время (обычно до минуты) появится созданная поверхность и можно двигаться дальше.
Но может и просто зависнуть.. если в течении минут 5, 10ти ничего не появилось — то это признак того, что все повисло..  нужно закрывать программу и все начинать с начала , только в поле Octree Depth ввести число поменьше..  Я сегодня пробовал запустить этот фильтр на исходное облако точек, и значение «Octree Depth » поставил = 10.. Так вот, мешлаб провисел полтора часа… и я его попросту вырубил и начал сначала..

Но я надеюсь, что у вас , как и у меня — все прошло нормально.
Обращаем внимание что в списке слоев появился ещё один новый слой, который я тут же переименовал в «

base_mesh

«, а так же видим созданную поверхность:

4) Теперь в слоях отключаем все слои, кроме только что созданного :

5) Включаем режим «Flat Lines» — что бы увидеть плотность сетки.. А так же поворачиваем нашу модель фронтально, как на картинке :

6) И заключительным шагом на этом этапе будет — оптимизация сетки. 

Дело в том, что созданная сетка сейчас очень неравномерная и «грязноватая».. Для оптимизации пропустим нашу геометрию через фильтр «Quadric Edge Collapse Decimation«:

В появившемся окне настроек оставляем все по умолчанию, разве что — ставим галочку на против «Planar Simplification» :

Жмем Apply и замечаем как сильно упростилась наша геометрия, без особых искажений в форме.

7) И самая самая последняя оптимизация .. — применяем фильтр «Merge Close Vertices» — он сольет несколько вершин в одну, если расстояние между ними меньше порогового значения..

Идем в фильтры..

В настройках фильтра в первое поле вводим 0.004 и жмем Apply..

(внизу справа тут же выдается сообщение, что было найдено 199 вершин удовлетворяющих этому условию)

Первый этап завершен.

И я рекомендую сохранить проект. При сохранении он будет предлагать сохранить каждый слой в отдельный PLY файл.. Имена файлам я давал точно такие же как у меня называется соответствующий слой.


Этап 2 : уплотняем упрощенную основу..

Теерь необходимо подготовить уже созданную упрощенную основу для нанесения на неё детализации. Что бы упрощенная поверхность смогла принять бОльшую детализацию — нужно уплотнить её сетку в тех местах, где мы хотим добавить деталей. В нашем случае это область головы.
Что бы выделить область (или области) которые будем детализировать, нужно активировать режим «Select Faces in a rectangular region«, он находится на панели инструментов справа сверху:

и выделяем прямоугольником нужную область, после чего она окрасится красным цветом:

… и выходим из режима выделения «Select Faces..» , нажав на эту кнопку ещё раз:

Осталось всего ничего — пропустить выделенную область через очередной фильтр, который повысит детализацию сетки .. Для этого нам понадобится фильтр
«Subdivision Surfaces : LS3 Loop«:
(обратите внимание что бы в списке слоев был выбран слой с этой поверхностью)

 В появившемся окошке можно настроить параметры увеличения детализации. Вы можете с ними играться сами.. В моем примере я, вспомнив Джеймса — ввёл число 0.0007:
(чем меньше число тем плотнее сетка)

.. нажимаем «Apply» и получаем такой результат:

И так! наша основа готова принять финальную детализацию!
Прежде чем это сделать — уберем красное выделение, оно нам больше не понадобится. Для этого, опять же, идем в фильтры : Filters->Selection->Select None:

В появившемся окне нажимаем Apply и выделение пропадет.

Теперь для порядка делаем дубликат этого слоя и называем его :

base_mesh_subdivided

.
И сохраняем проект.

Это нужно для того случая, если MeshLab вдруг повиснет или произойдет еще что то нежелательное (а я не нашел тут функции CTRL+Z )) — мы всегда можем открыть предыдущую сохраненную версию.. и спокойно продолжить работу не с нуля..


Этап 3 : Наносим детализацию на упрощенную основу..

Суть следующая: у нас есть очень высоко детализированное облако точек.. которые хорошо описывают поверхность.. а так же есть как-бы пластилиновый кусок упрощенной формы, на который мы хотим нанести детализацию, которая есть в облаке точек. 

И в MeshLab для этого есть отличный инструмент — «Vertex Attribute Transfer«. Если говорить очень упрощенно, то он позволяет скопировать значение позиции одной точки на другую.. таким образом мы сейчас с помощью облака точек, как-бы «выдавим» из нашей упрощенной «пластилиновой» поверхности все детальки…

Да, помимо копирования позиции , этот инструмент позволяет копировать и другие свойства точки, например — цвет!  Если вы сейчас включите режим отображения «Smooth» , то увидите, что наша поверхность абсолютно белая.. :

Но прежде, чем начать процедуру переноса атрибутов, я делаю новый дубликат слоя и называю его «

mesh_withDetails

» — это будет тот слой, на который я буду наносить финальные штрихи.. :

Вот посмотрите что будет когда мы применим Filters->Sampling->Vertex Attribute Transfer
(не забудьте с начала выделить новый слой :

base_mesh_subdivided

)

В появившемся окне с параметрами нас интересуют следующие:

Source Mesh

— это источник.
Здесь нужно указать слой с исходным облаком точек (SourcePCloud).

Target Mesh

— это цель.
Здесь выбираем слой, к которому хотим применить этот фильтр, тоесть наш слой с упрощенной поверхностью (base_mesh_subdivided).

И ещё нужно поставить две галки:

Transfer Geometry

— так мы говорим что хотим скопировать положение точек(вершин).

Transfer Color

— так мы говорим что хотим скопировать цвет точек(вершин)

Вот так настройки выглядят у меня:

Нажимаем «Apply»..  

У меня результат получился вот такой (обратите внимание, что я отключил лампочку, что бы видеть чисто геометрию с текстурой, без дополнительного освещения) :

Если у вас не видно текстуры, то проверьте что включен режим Render->Color->Per Vertex):

Что бы увидеть модель без сетки, включите режим «Smooth» (тут я включил лампочку).

а тут снова выключил лампочку и поприменял разные режимы отрисовки:

Но это ещё не всё.. Наша моделька сейчас слегка «тяжеловатая».. и её нужно немного подчистить — убрать лишние вершины(вертексы).. После применения трансфера атрибутов некоторые вершины оказались практически в одной точке.. и их правильнее объединить в одну.  Это мы и сделаем.. Воспользуемся уже ранее применяемым фильтром «Merge Close Vertices» Но на этот раз нам нужно сохранить большую детализацию, по этому в поле вводим число не 0.004 как в первый раз, а 0.0002…

И видим что так мы отфильтровали 84684! вершины.. что очень неплохо оптимизировало финальную модель!

Вот и всё! модель готова! Сохраняем проект!
А следующим постом я расскажу как экспортировать нашу модель и затем опубликовать её на сайте sketchfab.com что бы вы могли легко показывать свою 3Д модель всем желающим, в соцсетях и тд итп..

MeshLab/ Ujnjdbv 3D модель к печати

Многих интересует, можно ли самому создать модель для 3D-печати и сложно ли это. В этой статье мы попытаемся рассказать, как это сделать.

3D-печать — это способ создания объемных объектов путем послойного нанесения материала на основу.

С помощью 3D-принтера можно создавать изделия такой формы, которая не может быть реализована с применением других технологий. Возможна печать одного объекта внутри другого, полых деталей, подвижных частей, сложных изгибов и других трудоемких форм.

Разработано множество технологий 3D-печати: стереолитография (SLA), селективное лазерное спекание (SLS), моделирование методом наплавления (FDM) и другие. Конечно, у каждого метода есть свои плюсы и минусы.

При подготовке модели к печати, например, из керамики, стоит обратить внимание на конструктивные особенности материала, прежде чем выбирать способ печати.

В случае керамики, минимальная возможная толщина стенки изделия — 3 мм, а детализация — 2 мм. При этом в SLS-печати минимальная толщина равна 0,7 мм, а самая тонкая деталь может быть диаметром 0,2 мм — очень важно учитывать такие особенности.

MeshMixer Урок 1 — знакомство с программой

Еще один важный совет — 3D-печать недешевый процесс, поэтому лучше пытаться использовать как можно меньше материала.

Как же создать модель для печати на 3D-принтере?

Шаг 1. Моделирование 3D-прототипа

Напечатать можно практически любую модель, от органичных скульптур, сделанных в ZBrush, до математических абстракций или даже вашего персонажа в компьютерной игре. Но следует помнить, что 3D-модель станет реальной вещью, поэтому не нужно забывать о силе тяжести, распределении веса и прочности.

Например, если вы хотите напечатать фигурку, проверьте, сможет ли она стоять на своих двух — или больше — ногах или стоит добавить плоскую подставку.

На картинке показано моделирование чашки кофе c 8 ручками, также известной как “Octocup”. Она должна устойчиво стоять на столе и удерживать жидкость (ведь в этом и есть функция чашки), поэтому придать ей сумасшедшие асимметричные формы не получится. Иначе чашка просто завалится набок! Предпочтительнее всего сохранить ее в форматах .obj или .stl.

Шаг 2. Формируем пустоты в 3D-модели

Мы уже упоминали, что для экономии материалов желательно сделать 3D-модель полой. Опять же, в зависимости от материала и способа 3D-печати, толщина стенки может варьироваться. В данном случае стоит остановиться на 3 мм.
Использовать будем программу MeshLab, которая лучше всего подходит для такого рода задач.

Все, что нужно — создать смещенную копию модели с желаемой толщиной внутри основной.
Используйте следующие пункты в верхнем меню: Filters > Remeshing > Uniform Mesh Resampling (если у вас другая программа, названия могут отличаться). Настройте параметры: Precision 1.0, Offset value -3 (это задает толщину стенки) и проставьте галочки в Clean vertices и Multisample. Таким образом, получится отличная внутренняя поверхность.

Подготовка 3д модели к 3д печати в программах CURA, NETFABB, MESHLAB

Теперь надо развернуть нормали в другую сторону, чтоб модель определялась как полая — для этого через меню View > Show layer dialog выделяем нужный слой, а затем используем Filters > Normals > Invert Faces Orientation для инвертирования нормалей.

Для сохранения файла выбираем следующее: Layer > Flatten Visible Layers File > Export Mesh as.

Затем необходимо сделать небольшое отверстие для того, чтоб внутри изделия не осталось избыточного материала. Для этого сгодится любой 3D-редактор. Необходимый диаметр отверстия — как правило, двойная толщина стенки, то есть 6 мм в нашем случае.

Шаг 3. “Подчищаем” 3D-прототип

3D-принтеры довольно придирчивы к качеству моделей, поэтому данному этапу нужно уделить особое внимание. Убираем соприкасающиеся грани, синхронизируем направления нормалей. Для дальнейшей подготовки мы будем использовать netfabb Studio Basic, бесплатную программу, предназначенную специально для этого.

Открываем файл и запускаем автоматическую обработку, которая закроет дырки в модели. Для этого используем Extras > Repair, а затем — Automatic Repair > Apply Repair. Чтобы сохранить, жмем Part > Export part > As STL (binary) и вводим имя файла.

Затем вам останется только принести диск или флэшку с файлом в центр 3D-печати, где его транслируют в специальный G-код, то есть инструкции для машины по печати объекта. И вскоре вы получите готовый и еще теплый макет, который совсем недавно существовал только на экране компьютера!

Описание программы

MeshLab – это целостная система, имеющая в своем распоряжении функции, предназначенные для обработки и изменения 3D моделей, в основном неструктурированных.

Программа беслатна и предназначена в первую очередь для обработки моделей, получаемых после операции трехмерного сканирования.

В своем распоряжении MeshLab имеет обширный инструментарий, позволяющий очищать, редактировать, восстанавливать, визуализировать и конвертировать 3D модели. Программа полностью совместима с Windows 7, Mac OS и Linux.

Над всеми пользовательскими и загруженными работами можно проводить различные действия: очищать выбранные элементы, исправлять недочеты, проверять на корректность и даже конвертировать в другой формат.

Интерактивные возможности работы с MeshLab:

• Интерактивный выбор и удаление элементов модели. Применимо даже к большим объектам;
• Интерактивное рисование с возможностью выбора, сглаживания и окраски объекта.

Работа со многими форматами на входе и выходе:

• Импорт: .PLY, .STL, .OFF, .OBJ, .3DS, COLLADA, .PTX, .V3D, .PTS, .APTS, .XYZ, .GTS, .TRI, .ASC, .X3D, .X3DV, .VRML, .ALN;

• Экспорт: .PLY, .STL, .OFF, .OBJ, .3DS, COLLADA, .VRML, .DXF, .GTS, .U3D, .IDTF, .X3D.

Фильтры очистки модели:

• Удаление дублированных, повторяющихся, не имеющих ссылки вершин и пустых точек;
• Удаление небольших изолированных участков;
• Последовательное объединение;
• Автоматическое заполнение отверстий и дыр;
• Поверхностная реконструкция по точкам;
• Подразделение поверхностей на слои;
• Сохранение особенностей сглаживания и всех фильтров;
• Различные цветовые фильтры;
• Возможность обозначения границ;
• Интерактивное рисование объектов;

Другие возможности программы:

• Цветная живопись;
• Возможность выбирать инструмент и цвет для рисования;
• Наличие многоступенчатого сглаживания;
• Рендеринг, базирующийся на OpenGL Shader, совместимый с проектировщиком Typhoon Lab Shader;
• Возможность крупного рендеринга (до 16kx16k) для высококачественной печати;
• История всех совершенных действий и примененных фильтров может быть использована на другие модели и проекты или же сохранена в памяти для дальнейшего использования;
• Расширенные плагины, базирующиеся на архитектуре рисования объектов с новыми процессами обработки и кастомизации, поддержка работы с новыми форматами.

Источник: 3d-tutorials.livejournal.com

ЛОДы и оптимизация моделей в MeshLab 2016 — Часть 1

ЛОДы и оптимизация моделей в MeshLab 2016 — Часть 1

  • Fullrest
  • Блоги
  • ЛОДы и оптимизация моделей в MeshLab 2016 — Часть 1

MeshLab — бесплатная программа для редактирования, оптимизации, текстурирования и конвертации высокополигональных моделей (в основном 3D Сканов) в различные форматы.

Примечание: так как данная программа хорошо отрабатывает цельные модели (меши только с 1й текстурой/атласированные меши), коих в Моррошинде меньшинство, процесс обработки моделей с несколькими материалами нуждается в тестировании и обкатке.

Часть 1 — Работа с атласированными моделями

Подготовка модели

Для работы программы необходимо, чтобы меш в формате .obj и текстура в .png/.jpg находились в одной директории — поэтому под генерацию ЛОДов советую создать отдельную папку.

1. Конвертируйте текстуру в .png или .jpg, сохраните в рабочей папке.
2. Настройте материал модели в Максе так, чтобы в диффузе использовалась созданная в пункте 1 текстура:

3. Экспортируйте меш в формат .obj — обязательна триангуляция и экспорт материалов и материал лайбрари (.mtl файл):

Упрощение модели/ЛОДирование

4. Запустите MeshLab и импортируйте вашу модель через File -> Import Mesh:

5. Если п.1−3 были выполнены верно, модель импортируется в MeshLab сразу с текстурой:

6. Создание слоев для уровней ЛОДов

Следует знать, что MeshLab наглухо меняет импортированный меш без возможности отката его к исходной/предыдущей версии, однако программа позволяет создавать «слои» — дубликаты модели, на которых и следует производить все манипуляции по её упрощению. Слои также позволяют облегчить создание нескольких уровней ЛОДов (например трех с детализацией 75%, 50%, 25%) без необходимости постоянно импортировать/экспортировать модели в/из MeshLab.

Для создания нового слоя-дубликата — ПКМ по исходному слою -> Duplicate Current Layer:

Дубликаты слоев изначально не будут затекстурены. Чтобы добавить текстуру на дубликат — Filters -> Texture -> Set Texture:

Окно выбора текстуры несколько кривое — выбрать текстуру через какое-либо меню нельзя — можно только указать название и формат (.dds программа не понимает — .png и .jpg) файла, хранящегося там же, где и .obj текущей модели — отсюда требования в п. 1.

В поле Texture file ручками копипастим название файла текстуры (с форматом файла) из п. 1 и жмем Apply:

На ругань о сохранении жмем ОК:

7. Подготовив необходимое количество слоев можно переходить к их упрощению.

Выбрав Нужный слой переходим в Filters -> Remeshing… -> Simplification: Quadratic Edge Collapse Decimation (with textures):

В появившемся окне устанавливаем степень упрощения модели:

Степень упрощения:
— Target number of faces — можно задать требуемое количество полигонов упрощенной модели вручную (по умолчанию тут всегда прописывается 50% от количества полигонов оригинала);
— Percentage reduction — можно задать требуемое количество полигонов в процентах от исходной модели (например, чтобы уменьшить количество полигонов модели на четверть (25%) нужно задать значение 0,75);

Примечание: Поле Percentage reduction имеет более высокий приоритет, нежели Target number of faces — даже если в строке Target number of faces вписано какое-либо значение, упрощаться модель будет по значению строки Percentage reduction

Галки — все три рекомендуется тыкнуть, возможны эксперименты:
— Preserve Boundary… — программа пытается не изменять формы модели;
— Optimal Position… — программа пытается оптимизировать объединение вершин при упрощении;
— Preserve Normal — программа пытается сохранить ориентацию полигонов — предотвратить появление «вывернутых на изнанку» полигонов.

Примечание: при наведении курсора на каждое из полей всплывают подсказки на буржуйском — для лучшего результата рекомендуется ознакомиться с ними и поэкспериментировать с настройками.

Задав нужные настройки, жмем Apply — слой с моделью упрощен.

8. Упрощенный слой-модель экспортируется через File -> Export Mesh As…:

В появившемся окне выбираем место сохранения, формат и имя файла для ЛОДа:

В настройках экспорта нужно снять галку с Normal:

Жмем «ОК». Модель экспортирована.

Примечание: если на этом этапе программа зависла, сожрав всю оперативку — значит вы экспортировали исходную модель без триангуляции полигонов — см п. 3.

9. Импортируем модель в макс, накладываем текстуру, правим по желанию, экспортируем для Моррошинда.

Модели до и после упрощения – слева исходник, справа ЛОД (упрощение 50%)

  • Комментариев:
    Notice: Trying to access array offset on value of type null in /var/www/fullrest-team/data/www/fullrest.ru/templates/common/commentaries/comment_header.php on line 3
  • Участников:
    Notice: Trying to access array offset on value of type null in /var/www/fullrest-team/data/www/fullrest.ru/templates/common/commentaries/comment_header.php on line 4
  • Статистика

Источник: www.fullrest.ru

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 моделями и до новых встреч.

Источник: habr.com

В мире open-source. MeshLab — обзор программы в контексте задач по обработке данных фотограметрии и облаков точек

Введение : рассмотрим одно из open-source решений по работе с mesh-формами — MeshLab в контексте задач по обработке данных фотограмметрии и частично облаков точек.

Официальный логотип программы, взято с https://www.meshlab.net/img/meshlabLogo.png

1. Скачивание и установка

Раздел загрузки программ расположен здесь , в форме установочных пакетов.

Версии программы под различные ОС

Исходный код выложен на GitHub в данном репозитории , в большей части программа написана на C++.

Вопросы по программной части рекомендуют задавать в Issues на репозитории GitHub , а по части самого функционала — на разделе stackoverflow .

1.1 Обновление программы

Обновление программы доустанавливаемыми компонентами не предусмотрено. Новая версия скачивается вручную, при установке она сперва удаляет старую (либо вы это можете сделать сами), и ставит новую.

Проверяем наличие обновлений и загружаем вручную новую версию
Кроме того, есть возможность устанавливать и промежуточные beta-версии

2. Использование программы

Перед началом дальнейшего рассмотрения отдельных кейсов упомянем встроенную поисковую систему в программу, благодаря которой мы сможем найти нужную нам функцию:

Поиск нужной опции

Данная настройка поможет сэкономить время на поиск нужных команд.

Далее рассмотрим некоторые кейсы по использованию данного ПО

2.1 Среда просмотра моделей и конвертер моделей

Иными словами,MeshLab можно использовать как viewer (вьювер) для просмотра mesh-моделей и небольших облаков точек. Вес программы в установленном режиме занимает порядка 120 Мб. Как пример подобной истории — это просмотр сгенерированной поверхности из Agisoft Metashape.

Еще плюс программы — это кроссплатформенность

Опция импорта данных mesh
Набор поддерживаемых форматов данных — можно экспортировать в разные mesh-форматы имеющиеся модели
Пример сводной PLY модели данных

Важная опция, которую стоит упомянуть — это обращение направления приближения (колесико мышки)

Запускаем меню настроек
Опускаемся в самый низ списка, ставим галочку, нажимаем Save и Close

2.2 Объединение данных в единую модель

Недавно была задача — изыскатели прислали набор тайлов (постобработка данных фотограмметрии)

Пример данных — файл с mesh-структурой и текстура

Примечание : сразу скажу — текстуру meshlab не читает/читает как-то с настройками (у меня, во всяком случае, не получилось настроить)

Скопировал эти файлы программно в 1 директорию для удобства
Импортирую как Import mesh эти файлы
В появившемся диалоговом окне можно выбрать опцию «geometry» и нажать на ОК
Вид прогрузившихся данных
Если не видно панели справа — она включается тут

Для объединения видимых погруженных тайлов активируем команду «Filter -> Mesh Layer -> Flatten visible layers»

Оставляем параметры по умолчанию
Теперь справа в Навигаторе — у нас единая модель

Далее данную модель можно сохранить в форматах, в зависимости от того, где вы планируете использовать эти данные. Если в среде AutoCAD — то предложенный экспорт в DXF, если в ином ПО — то лучше выбирать универсальные mesh-форматы наподобие PLY/3DS.

Выбираем формат сохранения сгенерированной модели

2.3 Построение поверхностей по точкам/редактирование поверхностей

С примера выше экспортируем модели в формат точек (XYZ):

Экспортируем в облако точек
Создадим новый проект
Импортируем данные, для визуализации выставим в меню сверху отображение точек
При помощи поиска активируем опцию Триангуляции Делоне

Так будет выглядеть модель, есть опция вызывается подобным образом, но нам с вами нужно более настраиваемая среда

Встроенных алгоритмов по классификации облака точек в программе нет — поэтому строить триангуляцию по подобным данные неоптимально. Выгоднее данный набор точек (облако точек) отклассифицировать в профильном ПО, к примеру, в CloudCompare и вернуть в MeshLab как точки земли:

Импортируем (Import mesh) подобный файл
Настраиваем параметры чтения (разделитель)
Получаем модель с точками земли

Далее согласно статье настраиваем поверхность.

3. Выводы:

В данной небольшой статье мы с вами рассмотрели пару кейсов использования open-source решения по работе с mesh-моделями MeshLab (просмотр моделей/конвертация/объединения тайлов в единую модель). Встроенные возможности MeshLab не содержат инструменты по работе с облаками точек (классификация, в частности), поэтому геометрическое представление модели можно экспортировать в формат данных XYZ и в дальнейшем обрабатывать в профильном ПО и возвращать точки земли уже для построения рельефа/строить там же, а MeshLab’у оставить всё-же твердотельные модели.

Источник: dzen.ru

MeshLab 2021.10

MeshLab

MeshLab – данное программное обеспечение представляет собой известный и технически усовершенствованный редактор, функциональная деятельность которого направлена на создание и обработку неструктурированных моделей. Благодаря использованию данного продукта, специалисты смогут использовать технологии рендеринга прямо в режиме реального времени. Программа достаточна универсально в работе, поэтому она не имеет каких-либо ограничений по размерам и типу моделей. При этом софт так же имеет отличную совместимость, и корректно взаимодействует с любым современным расширением.

MeshLab скачать бесплатно

Пароль ко всем архивам: 1progs Так же разработчики сразу предлагают пользователям огромный набор самых разнообразных фильтров, инструментов, библиотек, и многих других вспомогательных компонентов. Дополнительно вы сможете устанавливать сторонние плагины, чтобы еще больше расширить функционал софта. Особенности редактора:

  • Качественная платформа для обработки неструктурированных моделей;
  • Функции рендеринга в реальном времени;
  • Профессиональная работа в трехмерной среде;
  • Широкая поддержка различных расширений;
  • Возможность установки сторонних плагинов;

Битая ссылка или обновилась версия программы? Напишите об этом в комментариях, обязательно обновим!

Если не подходит пароль к архиву или после извлечения не все файлы в архиве — смотрите раздел Помощь

Источник: pcprog.ru

Как уменьшить количество полигонов с помощью Meshlab и оптимизировать модель под 3D-печать.

Если вы ещё не загрузили и не установили MeshLab, то сделайте это и импортируйте свою модель.

В главном меню выберите следующие вкладки Filters > Remeshing, simplification and construction > Quadratic Edge Collapse Detection. Далее, открыв новую панель с наборов функций нажмите на кнопку «Help», Вы получите дополнительную информацию о каждой из доступных опций.

Как уменьшить количество полигонов с помощью Meshlab и оптимизировать модель под 3D-печать.

Доступны следующие параметры настройки:

Target number of faces (заданное количество поверхностей ) установите самостоятельно.

Quality threshold (порог качества) значение от 0 до 1. Заметьте, чем оно выше, тем труднее MeshLab придерживаться исходной формы модели. В документации чётко не указано, какими будут последствия использования высокого значения порога. Вместе с тем, значения 1 вполне достаточно для отличных результатов.

От автора: «От установок порога качества зависит — насколько может ухудшиться форма полигонов модели. Чтобы сохранить первоначальные формы потребуется большее количество правильных поверхностей. Поэтому значение в диапазоне 0-1 является наиболее оптимальным. 0 — принимает любой тип поверхностей, 0,5 – убирает мелкие полигоны ращмером < 0,5. Все изменения происходят с сохранением пропорций»

Preserve Boundary of the Mesh (сохранение границ полигональной сетки). Выбираем Yes. Разработчики объясняют это тем, что упрощение объекта не означает разрушение его границ. Этот параметр не влияет на водонепроницаемые полигональные сетки.

Preserve Normal (сохранение нормали ) также нажимаем Yes. Это параметр предотвращает случайное изменение нормалей в MeshLab. Создатели программы рекомендуют избегать эффектов, влияющих на нормали, и стараться сохранять исходную ориентацию поверхности. Недостаток в том, что при такой установке увеличивается время обработки модели. Опция активизируется по умолчанию. Если же во время загрузки модели у вас произошло переориентация нормалей, то это можно исправить, открыв вкладки Filter > Normals, Curvature and Orientation > Re-Orient all faces coherently .

Optimal position of simplified vertices ( оптимальное положение вершин ) выбираем Yes.

Комментарий от создателя MeshLab: «Когда деформируется край полигона, оптимальная позиция выбранных вершин позволяет минимизировать предполагаемые ошибки. Если эта опция отключена, то края будут привязываться к одной из двух вершин треугольника. Таким образом, новая полигональная сеть станет сокращённым вариантом исходной. Эта опция установлена по умолчанию.

Planar simplification ( упрощение планарной структуры), также нужно выбрать — Yes.

Пояснение от разработчика: «Вы обеспечите дополнительные ограничения для упрощения, что позволит сохранить текущую форму треугольников. Таким образом, можно значительно улучшить форму треугольников на совершенно плоских участках полигональной сетки. Как и параметр порога качества, эта настройка влияет на соотношение точность/сложность. Эта функция отключена, ведь она полезна только в отдельных ситуациях – когда в модели есть совершенно плоские участки».

 На этой неделе мы обсудим три метода модификации 3D-сеток с помощью бесплатного программного обеспечения MeshLab . Когда вы экспортируете 3D-файл в формат STL, то, что вы делаете, это создание файла, который описывает поверхность объекта с сеткой крошечных треугольников. Иногда возникают сложности с этой сеткой, которые вызывают проблемы с печатью, и MeshLab может помочь вам исправить большинство этих проблем, чтобы ваши файлы были готовы к печати.

 Мы сосредоточимся на трех главных проблемах, которые могут возникнуть с сетками: слишком много треугольников (слишком тонкая сетка), имеющих треугольники которые ориентированы неправильно или непоследовательно и имеют треугольники, которые расположены с плохой геометрией. В MeshLab есть головокружительный массив элементов меню с длинными именами, но если вы знаете, какие именно выбрать, вы можете быстро устранить эти три типа проблем. 

Ориентировочные нормы

Если какая-то из вашей модели кажется «наизнанку» (например, черная область на изображении ниже), вы должны выбрать и перевернуть любые обратные нормали, используя метод, описанный в рецепте. Использование MeshLab для фиксации нормалей в 3D-печати с Cookbook RepRap .

Или попробуйте скорректировать общее исправление в MeshLab, выбрав «Нормали, кривизну и ориентацию» в меню «Фильтры», затем выбрав инструмент «Переориентировать все плоскости когерентно».

Удаление краев без манифольда

Если в сетке вашей модели есть грани, которые встречаются вместе геометрически неприятными способами, тогда вам нужно будет отремонтировать ее перед 3D-печатью; см. статью Shapeways. Фиксация моделей без манифеста .  «Неармированные» ребра и вершины выглядят так, как показано ниже, из Мартина Селзле в блоге разработчиков PCL .

Вы можете идентифицировать и выбирать элементы без коллектора из меню «Фильтр / Выбор» в MeshLab; посмотрите на нижнюю часть окна для подсчета количества плохих плоскостей. Чтобы исправить любую плохую геометрию, используйте метод из статьи MakerHome. Сокращение и восстановление куба Fidget : из меню «Фильтры» выберите «Очистка и восстановление», а затем попробуйте комбинацию инструментов «Удалить повторяющиеся лица», «Удалить повторяющиеся вершины»»,» Удалить лица из краев без многообразия «и / или» Удалить T-вершины по краю края».

Какие ваши любимые быстрые исправления для ремонта и упрощения сеток? Сообщите нам в комментариях, чтобы мы могли научиться быстро справляться с проблемами сетки и вернуться к разработке и созданию!

MeshLab — бесплатная программа для редактирования, оптимизации, текстурирования и конвертации высокополигональных моделей (в основном 3D Сканов) в различные форматы.

Последняя версия — MeshLab 2016 от 23.12.2016:http://www.meshlab.net/#download

Примечание: так как данная программа хорошо отрабатывает цельные модели (меши только с 1й текстурой/атласированные меши), коих в Моррошинде меньшинство, процесс обработки моделей с несколькими материалами нуждается в тестировании и обкатке.

Часть 1 — Работа с атласированными моделями

Подготовка модели

Для работы программы необходимо, чтобы меш в формате .obj и текстура в .png/.jpg находились в одной директории — поэтому под генерацию ЛОДов советую создать отдельную папку.

1. Конвертируйте текстуру в .png или .jpg, сохраните в рабочей папке.

2. Настройте материал модели в Максе так, чтобы в диффузе использовалась созданная в пункте 1 текстура:

3. Экспортируйте меш в формат .obj — обязательна триангуляция и экспорт материалов и материал лайбрари (.mtl файл):

Упрощение модели/ЛОДирование

4. Запустите MeshLab и импортируйте вашу модель через File -> Import Mesh:

5. Если п.1−3 были выполнены верно, модель импортируется в MeshLab сразу с текстурой:

6. Создание слоев для уровней ЛОДов

Следует знать, что MeshLab наглухо меняет импортированный меш без возможности отката его к исходной/предыдущей версии, однако программа позволяет создавать «слои» — дубликаты модели, на которых и следует производить все манипуляции по её упрощению. Слои также позволяют облегчить создание нескольких уровней ЛОДов (например трех с детализацией 75%, 50%, 25%) без необходимости постоянно импортировать/экспортировать модели в/из MeshLab.

Для создания нового слоя-дубликата — ПКМ по исходному слою -> Duplicate Current Layer:

Дубликаты слоев изначально не будут затекстурены. Чтобы добавить текстуру на дубликат — Filters -> Texture -> Set Texture:

Окно выбора текстуры несколько кривое — выбрать текстуру через какое-либо меню нельзя — можно только указать название и формат (.dds программа не понимает — .png и .jpg) файла, хранящегося там же, где и .obj текущей модели — отсюда требования в п. 1.

В поле Texture file ручками копипастим название файла текстуры (с форматом файла) из п. 1 и жмем Apply:

На ругань о сохранении жмем ОК:

7. Подготовив необходимое количество слоев можно переходить к их упрощению.

Выбрав Нужный слой переходим в Filters -> Remeshing… -> Simplification: Quadratic Edge Collapse Decimation (with textures):

В появившемся окне устанавливаем степень упрощения модели:

Степень упрощения:
— Target number of faces — можно задать требуемое количество полигонов упрощенной модели вручную (по умолчанию тут всегда прописывается 50% от количества полигонов оригинала);
— Percentage reduction — можно задать требуемое количество полигонов в процентах от исходной модели (например, чтобы уменьшить количество полигонов модели на четверть (25%) нужно задать значение 0,75);

Примечание: Поле Percentage reduction имеет более высокий приоритет, нежели Target number of faces —

т. е.

даже если в строке Target number of faces вписано какое-либо значение, упрощаться модель будет по значению строки Percentage reduction

Галки — все три рекомендуется тыкнуть, возможны эксперименты:
— Preserve Boundary… — программа пытается не изменять формы модели;
— Optimal Position… — программа пытается оптимизировать объединение вершин при упрощении;
— Preserve Normal — программа пытается сохранить ориентацию полигонов — предотвратить появление «вывернутых на изнанку» полигонов.

Примечание: при наведении курсора на каждое из полей всплывают подсказки на буржуйском — для лучшего результата рекомендуется ознакомиться с ними и поэкспериментировать с настройками.

Задав нужные настройки, жмем Apply — слой с моделью упрощен.

8. Упрощенный слой-модель экспортируется через File -> Export Mesh As…:

В появившемся окне выбираем место сохранения, формат и имя файла для ЛОДа:

В настройках экспорта нужно снять галку с Normal:

Жмем «ОК». Модель экспортирована.

Примечание: если на этом этапе программа зависла, сожрав всю оперативку — значит вы экспортировали исходную модель без триангуляции полигонов — см п. 3.

9. Импортируем модель в макс, накладываем текстуру, правим по желанию, экспортируем для Моррошинда.

PROFIT

Модели до и после упрощения – слева исходник, справа ЛОД (упрощение 50%)
Модели до и после упрощения — слева исходник, справа ЛОД (упрощение 50%)

Часть 1. Продолжение.

Для создания 3D модели по снимкам воспользуемся моими любимыми ногами, правильно, ногами моей жены и обожаемыми ей программами VisualSFM и MeshLab, которые будут установлены на Windows 7, являющейся второй системой на компе, и не позволяющие пожелать ей спокойной ночи. :)
Выбор этой связки был продиктован сугубо техническими характеристиками моего компьютера.

Если Вы обладатель более мощных рабочих станций, можете воспользоваться для тех же целей, так же бесплатными, Autodesk 123D Catch (подробнее на Хабре) и Autodesk Memеnto (обзор на YouTube). Первая у меня работала через раз, вторая вообще просто не запустилась. Хотя, модель орла из обзора Autodesk Memеnto, по снимкам автора ролика, была отлично реконструированна в VisualSFM + MeshLab.

 

VisualSFM — это, по сути графическая оболочка, для Structure from motion, технологии создания 3D модели не просто по набору изображений, а по набору изображений, полученных в результате передвижения наблюдателя.
Прога дает нам возможность загрузить массив изображений, найти уникальные точки в каждом изображении, сформировать из них плотное облако уникальных точек и перевести эту «3D модель точек» в MeshLab для дальнейшего редактирования.

Подробнее о нюансах и выводах ниже.
1. Скачать и об установке очень подробно на сайте. Для Win7x64, при карте Nvidia с поддержкой Cuda, лучше глянуть здесь.

Мне пришлось почти как и в инструкции:
— дополнительно установить библиотеку MSVC2010 (64bit, 32bit)
— скачать CMVS от Yasutaka Furukawa. Распаковать все это и
— переместить из только что распакованных папок cmvs и pmvs файлы cmvs.exe, pmvs.exe, genOption.exe, pthreadVc2.dll в туже директорию, куда была распакована и VisualSFM.exe.
— работать не стало и я переместил папки cmvs и pmvs в папку с VisualSFM.exe.

 2. Далее все как по нотам.

1- загружаем фото,

2- программа их обрабатывает, выявляя характерные точки,

3- формирует облако точек,

— формируется более плотное облако точек, с даными о полежении в пространстве, цвете, нормаль к поверхности принадлежности точки.

На моем компе, обработка фото модели голени заняла 27 минут. Орел обрабатывался 70 минут, к примеру!!! Не удивительно, при таких характеристиках :)

Рекомендую, для понимания дальнейших действий в MeshLab’е, посмотреть видео-уроки тут и тут, и прочесть подробности здесь (pdf).

После их изучения, можно отметить, что сформированная модель напрямую зависит от качества исходных фотографий, их количества, количества возможных меток в пространстве.
Все модели, сделанные по моим снимкам, были неудовлетворительного качества по освещению, в недостаточном количестве (чем больше  с разных ракурсов, тем лучше), а модели по «учебным» снимкам выходили качественными.
Пример Орла уже приводил.

Съемки шара на белом фоне, без дополнительных меток, вообще не дали результата.

Черепашка на нотном листе, который, по моему мнению,

должен был служить дополнительными метками, вышла так:

Если получившаяся модель из точек очень плотная и качественная, то можно обойтись последовательностью в MeshLab как в приведенных выше уроках ( тут и тут).
Если же кроме отсутствия визуальной целостности «облака точек»  как на фото и

после  попыток объединения точек в «сеть» (Mesh) -> FILTERS -> POINT SET -> SURFACE RECONSTRUCTION: POISSON Вы видите:

Тут советую обратить Вам внимание на упомянутый урок, и поэкспериментировать с параметрами:
— COMPUTING NORMALS FOR POINT SETS (на стр.13-14)
— DOWN SAMPLING POINT CLOUDS ( на стр.17-18)

В итоге, при таких входных данных и своих, ограниченных доступной мне инфы (буду признателен за подсказки), я получил то, что получил.
Идея была в получении модели, повторяющей анатомические очертания голени, конвертации ее в удобоваримый распространенными программами моделирования формат и создание, на основании этого модели.
Часть фото и процесса создния  тут

По большому счету, то что получилось, можно было бы в том же 123D Design «Mesh» перевести в «Solid», но мой комп постоянно виснет при этом, ибо «много полигонов» :)
Полученный навык породил вопросы и потребность детального понимания возможностей MeshLab, уверен еще раз получиться уже иначе. Изучу, сообщу.

Что касается 3D модели голени для создания «косметики», решил пойти путем проектирования примитивами.

Об этом уже позже в частях 3 и 4.

Понравилась статья? Поделить с друзьями:
  • Аристон карес х 24 фф инструкция
  • Позиционер svi2 руководство по эксплуатации
  • Руководства по ремонту митсубиси паджеро спорт
  • Обладаю опытом руководства
  • Ундевит витамины инструкция по применению взрослым мужчинам в таблетках отзывы