РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
8. Постобработка скана
Открытие скана в Calibry Nest
После завершения сканирования, снятые кадры записываются в файл с расширением .ascan и хранятся на компьютере, к которому сканер был подключён во время сканирования. Данный файл может быть обработан как на том же компьютере, так и на любом другом, если на нём установлено ПО Calibry Nest.
Скан можно открыть в Calibry Nest несколькими способами:
Кнопкой "Открыть" на главной панели инструментов;
Через меню "Файл", выбрав "Открыть";
Перетащив нужный скан в окно Calibry Nest из папки, где он хранится;
Двойным левым кликом на скане в папке, где он хранится;
Двойным левым кликом на скане на панели сканов справа в Calibry Nest;
Выбрав скан на панели сканов и нажав кнопку "Открыть";
Используя сочетание клавиш Сtrl+O (английская).
После открытия скана, его имя появляется на панели файлов слева. При этом отображается не всё облако точек, а лишь сто кадров, взятых через равные интервалы, чтобы показать общую структуру скана, но не тратить слишком много видеопамяти. Чтобы увидеть полное облако точек, нажмите на "Кадры". Также, можно раскрыть список кадров и посмотреть отдельные кадры или группы кадров, выделяя нужный диапазон. Кадры, отмеченные розовым квадратом, содержат текстурные данные в дополнение к геометрическим.
1 кадр
несколько кадров
100 кадров
(предпросмотр)
полное облако точек
(все кадры)
Навигация в окне просмотра
Перемещение: нажмите обе кнопки мыши и двигайте объект.
Вращение: нажмите и удерживайте левую кнопку мыши и вращайте объект вокруг выбранной точки.
Резкий зум: нажмите и удерживайте правую кнопку мыши и перемещайте курсор вверх или вниз.
Плавный зум: вращайте колесо мыши.
Изменение размера точек в облаке: вращайте колесо мыши, удерживая Alt. Удобно при просмотре одного кадра.
Уместить в окне: нажмите среднюю кнопку (или колесо) мыши
Шаблоны
Для создания полигональной модели, необходимо запустить регистрацию и финализацию. Шаблоны — это заранее подготовленные наборы настроек для этих процессов. В зависимости от сканируемого объекта, используемого сканера и опыта пользователя, можно либо выбрать один из уже готовых шаблонов, либо задать настройки самостоятельно. Использованные настройки можно также сохранить в новый шаблон для последующих применений.
Имеющиеся шаблоны особенно пригодятся для начинающих пользователей, т.к. содержат проверенные настройки, которые, в большинстве случаев, дают хороший результат.
Шаблон может быть выбран как в настройках, так и на главной панели инструментов.
Регистрация
Данные необработанного скана могут содержать шумы и иметь видимые расслоения, особенно если скан был сделан без активации режима Live3D. Это нормально. В процессе регистрации отдельные кадры анализируются и подгоняются к соседним кадрам оптимальным образом. Этот процесс чем-то похож на сборку мозаики.
Регистрация может быть запущена одним из следующих способов:
Долгим нажатием на кнопку "Старт - Без текстуры" и выбором "Регистрации" из меню;
Нажатием правой кнопкой на "Старт - Без текстуры" и выбором "Регистрации" из меню;
Сочетанием клавиш ctrl+1 (сочетания клавиш можно изменить в настройках);
Через меню Файл —> Старт —> Стадии —> Регистрация;
Нажатием кнопки Регистрация на панели "Стадии процесса" (Данная панель скрыта по умолчанию. Для её отображения, нажмите правой кнопкой на главной панели инструментов и выберите "Стадии процесса");
Нажатие кнопки "Старт - Без текстуры" запускает регистрацию и финализацию последовательно;
Нажатие F5 запускает регистрацию и финализацию последовательно.
Результатом регистрации является новое облако точек, форма которого гораздо ближе к форме сканируемого объекта. В некоторых случаях форма облака точек до и после регистрации практически не отличаются. В других случаях разница может быть очевидной. В целом, сканы в приведённом ниже примере должны выглядеть одинаково после регистрации, однако сканы без Live3D как правило регистрируются дольше.
Скан без Live3D до регистрации
Скан с Live3D до регистрации
Сканы после регистрации и чистки
Предварительная чистка
Необработанные сканы могут содержать шумы. Для их удаления рекомендуется выполнять чистку в процессе регистрации. Данная опция активирована по умолчанию, но при желании её можно отключить в настройках, сняв галочку "Предварительная чистка". Это может быть полезно, например, при обработке сканов человека — для сохранения волос, которые обычно создают много шумов и могут быть отфильтрованы во время чистки. Отключение "предварительной чистки" может также оказаться полезным, если сканируемые объекты содержат углубления или когда поверхность в принципе сканируется с трудом — это позволяет сохранить больше данных, но из-за шумов поверхность может оказаться более шероховатой.
На данном примере видно, что после чистки очертания объекта становятся более отчётливыми, но и часть данных теряется, особенно в труднодоступных и плохо просканированных областях (например, на краях стола, который не является объектом сканирования).
Облако точек до чистки
Облако точек после чистки
Режим приоритета
Большинство сканов содержат лишние данные, которые не имеют отношения к сканируемому объекту. Например, столы, полы или дополнительная геометрия. Режим приоритета позволяет пометить такие данные как неважные, чтобы избежать их финализации и, тем самым, сэкономить время и упростить дальнейшую сборку объекта из нескольких сканов. Разумеется, лишние точки можно просто удалить, но предпочтительно именно помечать их как неважные — в этом случае, они всё равно не станут частью финальной модели, но помогут сохранить точность и внутреннюю структуру сканов, что будет особенно важно при сборке моделей из нескольких сканов.
Для включения Режима приоритета, нажмите соответствующую кнопку на главной панели инструментов. Данные скана сменят цвет с зелёного на золотой. Это означает, что все данные воспринимаются как важные по умолчанию.
После этого, нужно либо выделить ненужные данные и пометить их как вспомогательную геометрию, либо выделить важные данные и пометить их как объект. В результате, ненужные области поменяют цвет на полупрозрачный зелёный, а важные данные останутся золотыми. На этапе финализации только важные данные будут использованы для построения полигональной модели. Разумеется, при необходимости, разметку приоритета можно поменять или отключить. В последнем случае, все данные будут использованы как важные.
Для выполнения разметки, перейдите в раздел "Кадры", чтобы отобразить полное облако точек, после чего используйте инструменты выделения, чтобы выделить фрагмент облака точек. После этого, выделенный фрагмент можно пометить либо как вспомогательную геометрию, либо как важный объект. Для этого используете соответствующие кнопки на главной панели инструментов.
Выполните следующие шаги, чтобы пометить выделенную область как объект:
Выполните следующие шаги, чтобы пометить выделенную область как вспомогательную геометрию:
Результатом Приорити-разметки должно стать облако точек, на котором объект выделен золотым, а лишние данные — прозрачным зелёным.
В данном примере разметка приоритета выполнена на облаке точек, но её можно осуществлять и на уже финализированном результате.
Финализация
Алгоритм финализации генерирует полигональную сетку на базе имеющегося облака точек и параметров, заданных в настройках. Перед запуском финализации рекомендуется проверить настройки:
Разрешение
Заполнение дыр
Резкость
Удаление маркеров
Фильтрация по размеру
Упрощение
Эти настройки подробно рассмотрены в следующих разделах. Меняя данные настройки и запуская финализацию, можно сгенерировать несколько результатов и выбрать наиболее подходящий для поставленной задачи.
Финализация может быть запущена одним из следующих способов:
Долгим нажатием на кнопку "Старт - Без текстуры" и выбором "Финализации" из меню;
Нажатием правой кнопкой на "Старт - Без текстуры" и выбором "Финализации" из меню;
Сочетанием клавиш ctrl+2 (сочетания клавиш можно изменить в настройках);
Через меню Файл —> Старт —> Стадии —> Финализация;
Нажатием кнопки Финализация на панели "Стадии процесса" (Данная панель скрыта по умолчанию. Для её отображения, нажмите правой кнопкой на главной панели инструментов и выберите "Стадии процесса");
Нажатие кнопки "Старт - Без текстуры" запускает регистрацию и финализацию последовательно;
Нажатие F5 запускает регистрацию и финализацию последовательно.
Финализированный результат появится на панели файлов справа в виде оранжевого кружка со случайным именем. Если на него навести курсор, то во всплывающей подсказке будет показано количество вершин и треугольников в модели.
Одно и то же облако точек, при необходимости, может быть финализировано много раз с использованием разных настроек, чтобы посмотреть, какие настройки лучше подходят в конкретном случае. Нет необходимости повторно запускать регистрацию, если вы просто ходите финализировать то же облако точек с новыми параметрами финализации.
Если в скане несколько результатов, и выделено имя скана, то в будет отображён самый новый результат. Для просмотра конкретного результата, выберите его в списке. Имя результата может быть изменено с помощью команды "переименовать" в контекстном меню. Иногда бывает полезно добавить к имени короткий комментарий с параметрами.
В последующих разделах настройки финализации рассматриваются более подробно.
Разрешение
Разрешение определяет насколько детализированной будет финальная модель. Это значение задаётся в миллиметрах или долях миллиметра. Чем меньше это значение, тем детальней будет модель, поскольку она будет состоять из большего количества мелких треугольников. Но это также означает, что такая модель будет дольше генерироваться и требовать больше памяти для хранения. Дальнейшая её обработка также может потребовать больших вычислительных мощностей.
К тому же, существует разумный предел, после которого дальнейшее увеличение разрешения уже не приводит к улучшению качества модели, но значительно увеличивает объем памяти, необходимый для её хранения. Это делает манипуляции с моделью ещё более сложными, не давая каких-либо преимуществ.
По своей сути, значение разрешения задаёт усреднённый размер ребра для треугольников, из которых будет состоять модель. Однако, стороны отдельных треугольников могут быть как несколько больше, так и несколько меньше заданного значения.
Таким образом, чем меньше значение разрешения в настройках, тем выше разрешение финальной модели, тем больше в ней будет треугольников, и тем меньше будут их линейные размеры. Верно и обратное: чем больше значение разрешения, тем ниже будет разрешение финальной модели, т.к. она будет состоять из меньшего количества более крупных треугольников.
Максимальное разрешение для моделей, полученных с помощью сканера Calibry — 0.6мм, но данное значение не рекомендуется использовать для объектов значительно больше метра, т.к. время обработки и вес модели могут оказаться непрактично большими. Для крупных объектов (3-5 метров) подойдёт разрешение в диапазоне от 1 до 3 мм.
Calibry, разрешение 0,6мм
Calibry, разрешение 1,0мм
Максимальное разрешение для моделей, полученных с помощью сканера Calibry Mini — 0.15мм, но данное значение не рекомендуется использовать для объектов значительно больше 10 см, т.к. время обработки и вес модели могут оказаться непрактично большими. Для объектов размером 10-30см оптимально разрешение 0,2мм. Для объектов больше 30см рекомендуется использовать разрешение 0.4мм.
Calibry Mini, разрешение 0,2мм
Calibry Mini, разрешение 0,4мм
Значение разрешения может быть уменьшено или увеличено не только в зависимости от размера сканируемого объекта, но и в силу специфики выполняемой задачи.
Заполнение дыр
В ряде случаев бывает затруднительно отсканировать объект целиком и со всех углов, просканировав все складки, монтажные отверстия или углубления. Поэтому финальный результат может содержать дыры, там где данных было недостаточно.
Зачастую, небольшие отверстия можно заполнить, используя данные на краях недосканированных областей. Проще говоря, Nest может попробовать "угадать", как выглядела исходная поверхность. Данный алгоритм работает особенно хорошо на ровных или плавно изменяющихся поверхностях, но может неплохо справиться и с заливкой дыр на технических объектах, особенно если дыры не слишком велики и не находятся в местах резких геометрических перепадов.
В Calibry Nest заполнение дыр возможно как на этапе финализации так и при помощи отдельного инструмента на боковой панели. Как правило, лучше всего заполнять мелкие дыры в процессе финализации, а после финализации принять решение либо о заливке и более крупных дыр, либо о повторном сканировании области для сбора более полных данных, если данная область оказалась плохо просканированной и при этом является важной для дальнейшей работы с моделью.
На примере ниже показан вариант без заполнения, с заполнением небольших дыр и с заполнением всех дыр. В последнем случае очевидно искажение геометрии в силу недостатка данных. В таких случаях рекомендуется просканировать данную область повторно.
Без заполнения
Заполнение дыр до 5мм
Заполнение всех дыр
Резкость
Помимо разрешения, на внешний вид модели влияет также и резкость. Эта настройка определяет насколько сглаженной или шероховатой будет 3D-поверхность. Важно заметить, что центральное положение слайдера является штатным. В этом положении работа алгоритма не корректируется. В большинстве случаев рекомендуется оставлять этот слайдер в среднем положении. Однако, уменьшение резкости позволяет получить более гладкую поверхность на шумных или недостаточно плотных данных. С другой стороны, более высокие значения резкости позволяют сделать углы и края модели более выраженными.
Низкая резкость
Высокая резкость
Вырезать маркеры
При сканировании по маркерам, на финальной поверхности могут быть видны места установки маркеров. Это особенно заметно в случае с магнитными маркерами, т.к. они толще, чем клеящиеся. Для сканов, предназначенных для обратного проектирования, это не играет особой роли и следы от маркеров зачастую могут быть проигнорированы. Однако, если скан делается для эстетических целей, маркеры могут быть удалены в процессе финализации. Установите опцию "вырезать маркеры" и задайте радиус используемых маркеров.
Важно заметить, что это радиус целого маркера, включая его рамку. Если используются квадратные стикер-маркеры, радиус должен быть равен половине диагонали квадрата. Также, как правило, лучше увеличить это значение на 1мм, чтобы быть уверенным, что маркер точно попадает в зону удаления целиком. Т.е. если диаметр маркера 22мм (типовой магнитный маркер), то в поле радиус маркера нужно ввести значение 12мм: 11мм радиус + 1мм запаса.
Пример поверхности без удаления маркеров
Пример поверхности после удаления маркеров
Поскольку алгоритм удаления маркеров просто вырезает отверстие в месте установки маркера и потом заливает его, не рекомендуется устанавливать маркеры на края или области с резкими перепадами кривизны. В противном случае, при удалении маркеров могут появиться артефакты.
На данном примере показаны маркеры разных размеров и некоторые из них находятся на краю. Видно, что заданное значение радиуса даёт хороший результат с круглыми маркерами, но недостаточно для квадратных маркеров (при их удалении видны края стикеров). К тому же, при удалении маркеров на краю стола, исходная поверхность деформируется.
Фильтрация по размеру
В процессе финализации, вокруг объекта могут образоваться небольшие полигональные фрагменты, особенно если во время регистрации не выполнялась чистка. Шумы на облаке точек могут приводить к появлению подобных артефактов, но, как правило, они не касаются объекта и могут быть с лёгкостью отфильтрованы.
Другим примером может являться плохо выполненная разметка приоритета. В этом случае, финальная сборка также может включать лишние элементы.
Также, если объект может быть отсканирован только в месте установки, лишние части механизма или другого объекта могут попасть в поле зрения сканера и оказаться частью результата. Такие части можно либо пометить как дополнительную геометрию при выполнении разметки приоритета, либо отфильтровать в процессе финализации или после её завершения.
Фильтрация может быть осуществлена двумя способами. "Оставить самую большую часть" удалит все элементы, кроме самого крупного. Данная опция полезна, когда все лишние элементы очевидно меньше основного. Следует быть аккуратным при использовании этой опции, когда вокруг объекта много крупных элементов или в скан попала значительная часть пола или стола, на котором находился объект. Зачастую, поверхность стола или пола может оказаться больше поверхности объекта. В этом случае, будет удалено всё, кроме пола или стола, включая и сам объект. Другой вариант — "Удалить части меньше чем" — позволяет задать предельный размер фильтрации. Части, содержащие большее количество полигонов, удалены не будут. Данная опция полезна, если некоторые крупные части модели не касаются основного объекта, но не являются лишними.
Пример модели без фильтрации
Модель с отфильтрованными мелкими фрагментами
Модель после применения фильтра "оставить самую большую часть"
Фильтрация также может быть выполнена отдельно — с помощью одноимённого инструмента на боковой панели, описанной в Главе 10: Инструменты.
Упрощение
Если модель состоит из слишком большого количества треугольников, её можно перестроить, заменив группы мелких треугольников на более крупные, тем самым упрощая модель. В разумных пределах это почти не приводит к потере качества, но если упрощение слишком сильное, то некоторые детали будут потеряны.
Упрощение особенно эффективно для моделей с большим количеством плоскостей или больших и плавных переходов, где геометрия не меняется слишком сильно. Алгоритм в первую очередь упрощает такие области, стараясь оставить полигональную сетку более плотной на углах и в местах резких перегибов, тем самым сохраняя детализацию там, где она необходима.
В Calibry Nest упрощение можно выполнить как в процессе финализации, так и после её завершения (с помощью отдельного инструмента на боковой панели). Настройки и алгоритмы в обоих случаях одинаковы. Однако, при упрощении во время финализации нет возможности увидеть исходную модель до упрощения.
При упрощении, можно выбрать либо процент упрощения, либо задать конкретное число полигонов, которое должен содержать результат. Например, если модель состоит из миллиона полигонов, упрощение её до 40% оригинала сократит количество полигонов на 60% и модель будет содержать 400 000 полигонов. Схожим образом, можно задать нужное число полигонов, установив галочку "Абсолютное" и вписав конкретное значение в поле. Например 400 000. Модель будет упрощена до заданного количества полигонов. Важно заметить, что точное количество полигонов может немного отличаться от заданного, но никогда не будет его превышать.
Текстурирование
Если в процессе сканирования сохраняются текстурные кадры, то полученную модель можно затекстурировать, т.е. получить цветную 3D-модель. По умолчанию, каждый 20й кадр скана содержит текстурные данные. Это значение не зависит от типа трекинга: сканеры Calibry могут фоново захватывать текстурные данные во всех трёх режимах трекинга с любой заданной частотой.
В настройках текстурирования доступно две опции.
Первая опция — "Улучшить" — включена по умолчанию и позволяет получать оптимальные результаты. Но если при текстурировании возникают проблемы, данную опцию можно попробовать отключить.
Вторым параметром текстурирования является размер текстурного атласа. Это PNG-файл, содержащий все цветовые данные. Его размер может составлять 1024x1024, 2048x2048 или 4096x4096 пикселей. Поскольку размер атласа не влияет на время обработки, как правило используется максимальное значение, но размер атласа при этом может составлять около 50МБ.
Для запуска текстурирования, выберите результат, который необходимо текстурировать и нажмите кнопку "текстурирование" или клавишу F6 (горячую клавишу можно изменить в настройках). Если скан содержит несколько финализированных результатов, но выделено имя скана, а не один из результатов, то текстурируется самый новый результат.
Если выбранный результат содержит более 700 000 полигонов, будет выдано предупреждение с предложением упростить модель для ускорения текстурирования. При этом, будет создана копия модели для упрощения и текстурирования.
Окно с предупреждением также показывает количество полигонов в модели. Если оно лишь немного больше 700 000, то упрощение можно пропустить. В большинстве случаев, текстурирование модели из более чем миллиона полигонов имеет мало практического смысла: это займёт ощутимо больше времени, но мало сказывается на качестве текстуры.
Как правило, индустриальные и технические объекты почти никогда не текстурируются, т.к. необходима только форма объекта. Но текстурирование может быть полезным при сканировании художественных объектов, предметов искусства, людей (для подготовки 3D-персонажей) и некоторых товаров. Ниже приведены примеры текстурированных моделей:
Коррекция текстуры
В Calibry Nest доступно несколько инструментов для редактирования текстуры. Выделите текстурированный результат, чтобы данные инструменты отобразились на боковой панели инструментов:
Коррекция текстуры — позволяет скорректировать яркость, контрастность и цветовой баланс текстурного атласа;
Кисть коррекции яркости — позволяет локально повысить или понизить яркость текстуры отдельных участков;
Волшебный клонирующий штамп — позволяет скорректировать локальные дефекты текстуры, используя прилегающую текстуру.
Эти инструменты подробно рассмотрены в Главе 10: Инструменты.
Сохранение результатов
Обработанные в Calibry Nest данные и результаты не сохраняются автоматически. Это сделано для исключения случайной перезаписи исходных данных.
В случае необходимости, на любой стадии постобработки можно сохранить как сам скан, так и облако точек или любой из имеющихся результатов (с текстурой или без).
Для сохранения скана целиком, включая все кадры, результаты и текстуры, щёлкните по имени скана правой кнопкой мыши и выберите "Сохранить проект как..." в контекстном меню. Выберите путь сохранения и имя файла. Сканы сохраняются в формат ASCAN. Не рекомендуется перезаписывать исходные сканы обработанными до завершения работ по проекту — необработанные сканы могут пригодиться в случае возникновения проблем с обработанными результатами.
Для сохранения облака точек нажмите правой кнопкой на "Кадры" и выберите "Сохранить как...". В этом случае, облако точек сохраняется в формат PLY.
Для сохранения отдельного полигонального результата, щёлкните по нему правой кнопкой мыши и выберите "Сохранить" в контекстном меню.
Выберите путь сохранения, имя файла и формат. На данный момент доступны форматы OBJ, STL, PLY, 3MF, WRL. Для сохранения текстурированных результатов используете форматы OBJ или 3MF. При сохранении текстурированных результатов в другие форматы, текстурные данные будут утеряны.