Фотограмметрия с использованием смартфона

Съёмка

В том случае, если вы будете снимать на телефон, то используйте приложение которое не пережимает фотографии и в котором можно вручную задать значение экспозиции. В нашем случае это был Samsung Galaxy S6 и приложение FV-5.

Фотограмметрия с использованием смартфона


Задача в фотограмметрии — сделать снимок как можно более чётким и без каких-либо шумов. Как правило, на телефонах, управление линзой либо отключено вовсе, либо крайне минимально, поэтому нам нужны настройки экспозиции; её хватит, чтобы выдержать ISO как можно ниже (близкое к 100), а скорость затвора достаточно высока, чтобы избежать размытия движения. Также вам необходимо установить баланс белого вручную, дабы избежать цветового искажения между снимками.

Выполнять съёмку лучше всего в облачную погоду, когда освещение рассеянное. Или использовать рассеивающий диск, к примеру такой Photoflex LiteDisc. Рассеянное освещение минимизирует наличие жёстких теней, что даст лучшую цветовую карту. В нашем случае съёмка была произведена в пасмурную погоду.

Для дерева нам нужно сделать серию фотографию вокруг ствола. Двигаемся вокруг ствола на 360 градусов, делая новую фотографию с равными интервалами. Не забудьте сохранить достаточное перекрытие между фотографиями, поскольку в дальнейшем это поможет алгоритмам выдать наилучший результат. Интенсивная фотосъёмка быстро садит батарею фотоаппарата, поэтому удосужьтесь запастись дополнительными источниками энергии.

ФОТОГРАММЕТРИЯ

Вернувшись в офис, мы продолжим нашу работу, используя специальное программное обеспечение для фотограмметрии. На рынке представлено много различного софта для это дела, мы же выбрали PhotoScan Standardот Agisoft.

Типичный процесс реконструкции данных выглядит следующим образом: импортировать изображения, работа с облаком точек, получение реконструированного объекта. В данном примере мы сфокусируемься на одном участке дерева. В итоге, мы получили высокополигональную 3D модель с полигонажем ~15кк, и текстуру в разрешении 8к. Как вы можете заметить, съёмка на мобильный телефон может дать неплохой результат.

Пост обработка

Высокополигональный меш весит ~15 миллионов полигонов и чтобы вписаться в стандартный рабочий процесс, мы должны перенести детализацию с хайпольки на лоупольку. С этой задачей вы можете справится посредством Substance Designer/Painter или же использовать тот 3D редактор в котором вы создавали низкополигональную модель. В нашем случае, мы использовали Blender для создания лоуполи меша, и для последующего запекания карты нормалей и цветовой карты.

Если вы хотите поработать с картой высот, то, используя Substance Designer, вы можете сконвертировать вашу карту нормалей в карту высот. В Substance Designer соедините вашу карту нормалей с нодой Normal to Height для получения карты высот. После чего перейдите на панели меню в Tools/Prefrences…/General/Cooker/Cooking size limite, после чего установите ваш исходящий размер в значение 13 (что означает 8к). И вуаля! теперь у вас есть карта высот.

Теперь у нас есть низкополигональный объект который может быть использован в любом 3D приложении, но у нас остались некоторые пустоты и артефакты. Для решения этих проблем мы воспользуемся Substance Painter’ом. Substance Painter может импортировать/экспортировать 8к карты; он позволит нам загрузить нашу карту в разрешении 8к, поработать с ней в разрешении 4к и экспортировать результат в исходных 8к, не растягивая/масштабируя текстуру, он просто пересчитает текстуру в несжатом образе. После импорта модели, карт нормалей, высот и цвета, мы просто добавим Fill Layer ко всем текстурам. Затем можно добавить любые каналы и изменить разрешение на 4к.

Далее, мы можем использовать Clone Tool для исправления артефактов. Работая на отдельном/новом слое, вы отделите данные копирования от данных исходной фотограмметрии. Просто не забудьте переключить режим для всех каналов в PassThrough (в этом режиме, все каналы ниже клонированного слоя копируются). Как и все остальные кисти SP, Clone Tool работает по всем каналам (Color, Normal, Height) в один проход, что позволяет сэкономить уйму времени.

Для того, чтобы удалить как можно больше освещения на цветовой текстуре, мы использовали фильтр созданный в Substance Designer. Данный фильтр всё ещё в разработке и будет добавлен в последующих обновлениях.

Данный фильтр может удалить освещение основываясь на Color Reference и Ambient Occlusion (просчитанной с высокополигонального меша). В итоговом результате получаем цветовую текстуру более нейтральную и универсальную, которую можно использовать при любом освещении.

Завершение

Теперь, когда мы исправили все артефакты, мы можем приступить к доработке нашего материала, добавив в него, вручную или процедурно, разнообразия. Начнём с запекания всех дополнительных карт, таких как: World Space Normal, Ambient Occlusion, Curvature, Position и Thickness. SP может запечь все эти 15кк полигонов очень быстро. К примеру, мы можем добавить немного мха на наше дерево. Найдём в Substance Share материал мха и импортируем его в SP. Начнём с добавления Fill Layer и использования маски мха. Если поиграться с Mask Builder Parameters и World Space Normal, то можно добиться результата, когда у нас с одной стороны, северной, мха будет больше. Мы можем добавить больше деталей используя другую Smart Mask‘у и в конечном итоге пройтись кистью частиц Organic Spread дабы нанести финальные штрихи.

В качестве другого примера, мы можем обуглить наше дерево. Добавьте Fill Layer с материалом дыма, добавьте маску и воспользуйтесь кистью частиц Burn; если выставить большой размер кисти, то можно добиться приятного результата.

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

Рекомендуем посмотреть
  • Конвертирование текстур в/из PBR формат В данной статье, я собираюсь продемонстрировать то, как контент созданный для традиционных шейдеров может быть сконвертирован в физически корректные шейдеры (PBR), как сконвертировать контент из
  • Статическое освещение в Unreal Engine 4 Каждый проект уникален и имеет собственные цели, поэтому этот раздел даст вам основные концепции и базисы для познания того, что вы хотите получить от статического освещения.
  • Динамическое освещение в Unreal Engine 4 В данной части статьи мы рассмотрим решения, направленные на улучшение качества теней соответствующих геометрии. Это также поможет улучшить качество динамических теней.
  • Проблемы с освещением и методы их решения в Unreal Engine 4 По правилам освещения, чёрные тени обычно используются, если у вас нет заполняющего света. Это часто происходит по тому, что окружающая среда имеет один направленный поток света, представленный как
  • Смешивание кадров с использованием векторов движения Моя вариация смешивания кадров, впервые разработанная Guerrilla Games для Killzone 2, в конце статьи вы найдёте ссылки на их статью и другие ресурсы. Цель данного метода заключается в том, чтобы