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

Разработка игр | |

photogrammetry

Помощь в ускорении вашего рабочего процесса создания окружения от Гильерме Рамбелли (Guilherme Rambelli).

Введение

Фотограмметрия – простая в использовании технология, которая использует фотографию, чтобы автоматически генерировать 3D геометрию и ба­зовую текстурную карту для создания PBR материалов в реальном времени или для таких 3D движков, как Vray и т.д. Я рад поделиться своим опытом в фотограмметрии и помочь пользователям начать работу с ним, увеличить это сообщество и улучшить существующие технологические процессы, используя эти методы. Время всегда было ценным ресурсом в любом ­производстве. Фотограмметрия может помочь вам ускорить рабочий процесс и обеспечить хорошее качество ваших ассетов. Разработка ас­сета средних размеров занимает примерно 4 часа работы и еще 3 – 4 часа обработки. В этом разборе мы пройдем через процесс фотосканирования внешней окружающую среды с естественным освещением и узнаем, как изолировать и обработать отдельный ассет, используя Agisoft, Maya, Zbrush и Photoshop.

Процесс

Первый шаг процесса заключается в получении исходных изображений. Базовая концепция требует фотосканирование хорошего качества, так как Agisoft сгенерирует 3D геометрию, основанную на ракурсах съемки изображений и, таким образом, про­цесс захвата изображения чрезвычайно важен, возможно он – самый важный шаг из всех.

  • Старайтесь снимать в пасмурную погоду на открытом воздухе или с равномерным студийным освещением в закрытом помещении/в студии, чтобы избежать направленного освещения.
  • Используйте DSLR или не зеркальную камеру с + 50мм объективом, чтобы быть уверенным, что захватили как можно больше дан­ных – старайтесь избежать недо- или переэкспозиции любого из изображений, используя 32-битный формат файла, чтобы иметь возможность настроить их позже и восстановить некоторые данные.
  • Используйте фильтры или поляризационные линзы, чтобы уменьшить блики от глянцевых/рефлексивных поверхностей.
  • Старайтесь делать ISO максимально низким, чтобы избежать шума.
  • Используйте маленькую апертуру / высокий F-Number.
  • Установите низкую скорость затворов, чтобы уравновесить апертуру и удостовериться, что кадр не пере- или недоэкспози­рован. Для затворов медленнее, чем 1/40 также рекомендуется использовать штатив, чтобы фотографии не смазывались.
  • Фиксируйте экспозицию, снимая в ручном режиме или при помощи AEL (автозамок экспозиции) на камере.
  • Если сохраняете снимки в JPEG, удостоверьтесь, что баланс белого также зафиксирован, иначе автоматический WB может дать различные оттенки в наборе фотографий. С RAW это не имеет значения, так как можно легко настроить при обработке.
  • Используйте карту серого, чтобы облегчить калибровку баланса белого или таблицы проверки цвета, чтобы калибровать и WB, и экспо­зицию. О том, как калибровать, могу написать позже.
Agisoft User Manual

Иллюстрация из Руководства пользователя Agisoft для обеспечения понимания правильного размещения камеры

* 3 Изображения, охваченные углами по 15-25 °

* 3 Изображения, охваченные углами по 15-25 °

Убедитесь, что фотографии наложены друг на друга по крайней мере на 30% и (если возможно) изображения покрывают весь объект вокруг. На один объект получается от 20 до 300 снимков.

Как только сделали все фотографии, используйте Photoshop (или любое другое ПО для редактирования изображений), чтобы одним махом обработать все RAW файлы в JPEG с базовой настройкой света (highlights) и теней, чтобы избавиться от засветок и АО на изображениях. Фильтр можно изменять в зависимости от содержания на фотографии.

shadows highlights

Следует иметь в виду, что чем более прямые (плоские) изображения объектов получены при съемке, тем лучшие результаты будут получены в Agisoft. Это также поможет получить прекрасную текстурную карту через пару этапов. Теперь, когда у нас есть все обработанные JPEG, перетягиваем и бросаем все изображения в Agisoft, чтобы создать но­вый «Chunk» на левой «workspace box».

Щелкните правой кнопкой мышки по chunk и перейдите в Process > Align Photos (обработка > выровнять фотографии), установив его Accuracy в High для луч­ших результатов, а под «Аdvanced» можете использовать Point Limit от 40.000 до 60.000 в зависимости от того, насколько велик объект сканированния.

create a new Chunk

Щелкните правой кнопкой мышки на «Chunk», перейдите в Process > Build Dense Cloud (обработка > построить плотное облако)… и установите Quality на High или Ultra High. Разница между этими двумя опциями не выглядит сейчас заметной, но это действительно будет иметь значе­ние позднее. Я рекомендую сначала попробовать Low или Lowest качество, чтобы удостовериться, что Dense Cloud выглядит хорошо и точно отображает первоначально сканированный ассет. Как только убедитесь, что все вы­глядит хорошо, можете обработать в «High» или «Ultra high».

Build Dense Cloud

Как только получите хорошее плотное облако, можете уже строить сетку под Workflow > Build Mesh (обработка > построить модель) и устанавливать плотность облака, содержащего исходные данные и плотность сетки, которую хотите создать (Medium иногда достаточно).

Build Mesh

Теперь, когда есть сетка, можно экспортировать ее как файл FBX под File > Export Model. Теперь у вас FBX с сеткой, постро­енной из захваченных изображений, готовой для импорта в Maya или любой другой 3D пакет. Экспортируйте OBJ из ори­гинального FBX в Zbrush, чтобы очистить (не забудьте удерживать сетку в ее оригинальных единицах, вращении и масштабе). Вы можете импортировать или использовать GoZ своего 3D пакета, чтобы перенести сетку в Zbrush. Как только сетка туда загруже­на, дублируйте subtool и преобразуйте в Dynamesh с низким subdiv, чтобы развернуть UV. Теперь, когда есть сетка без отверстий, можете увеличить subdivision в достаточной для проецирования степени этого subtool поверх оригинальной сетки, перенося все ее детали. Теперь у вас должна быть чистая геометрия с надлежащим UVs, который все еще содержит все детали оригинальной сетки. Отверстия, которые были заполнены из Dynamesh, все еще плоские. Используйте свои методы работы в Zbrush, чтобы добавить деталей в эти области, но не смещайте слишком много геометрии, иначе у Agisoft будут неко­торые ошибки в текстурировании.

build texture

Экспортируйте свою новую сетку из Zbrush в Maya, чтобы удостовериться, что все находится в том же самом месте, как в оригинальной сетке. (Если вы не перемещали ее в Zbrush или Maya, когда сначала перенесли в Maya, то все должно быть все еще в том же самом месте). Настройте UVs и удостоверьтесь, что перекрываете больше 0,1 UV пространства и имеете минимальные искажения. Теперь экспортируйте новую сет­ку снова и переходите к заключительно­му шагу в Agisoft.

В Agisoft, с вашим раннее загруженным проектом, перейдите в меню Tools > Import > Import mesh и оставьте уровень Shift на нуле. Чтобы создать текстуру, перейдите под Workflow > Build textures (построить текстуру) и устанавите Mapping mode на «Keep uv», тип смешивания на «Mosaic» и разрешение кар­ты, какое хотите. Если у ваших изображений есть цветовые различия из-за изменения освещения при захвате, примените «Advanced» и «Enable color correction».

Чтобы экспортировать текстуру, перейдите в Tools > Export > Export Texture. Теперь вы готовы ее использовать, чтобы сгенери­ровать каналы Albedo, Gloss/Rough, Specular в Photoshop, Bitmap2Material или любом другом ПО, которое используете для этих целей.

export texture

Чтобы сгенерировать Albedo, можете использовать Photoshop и преобразовать текстуру в Smart Object и использовать слой ре­гулирования «Shadows/Highlights», чтобы избавиться от теней и засветок в текстурной карте. Для карты Gloss/Rough я делаю desaturate albedo и генерирую карты в DDO как референс, что­бы удостовериться, что нахожусь в правильном диапазоне шка­лы яркости Physically Based материала. Та же самая концепция применяется для карты Specular.

Вы можете использовать Xnormals с сеткой, созданной в Zbrush как high poly и ту же самую сетку decimated (преобра­зованную в low poly, используя Zbrush, Maya или другой программе) для генерирования карт Height, Normal и Ambient Occlusion. Теперь, когда у вас есть все карты, вам необхо­дим бесшовный PBR материал и хорошая low poly геоме­трия, сгенерированная фотограмметрией в качестве исход­ной сетки, которые можно теперь проверить на качество в Marmoset Toolbag. Вот результат на примере де­рева и текстуры ландшафта, полученный с использованием фотограмметрии, объединенной с Speedtree для листьев и материалов из комплекта Megascan для травы на земле.

guilherme-rambelli-tree-photogrammetry

Заключение

Фотограмметрия, как мы могли заметить в этой статье, являет­ся простым процессом фотозахвата среды или ассета и ис­пользования 3D программного обеспечения, которое сши­вает весь пакет фотографий вместе и дает нам результат в виде текстурированной геометрии. Этот метод мы можем ис­пользовать для 3D движков, например, V-Ray, или движков реального времени практически без разницы между этими рабочими процессами.

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

Guilherme Rambelli

Об авторе

Я Guilherme Rambelli и я работаю 3D художником на «There Studios Santa Monica, CA» последние 3 года, в том числе старшим художником последний год. Мои ос­новные обязанности в создании 3D фотореалистичных сред для кино, рекламы и промо для таких клиентов, как Marvel, Warner Bros.,Hasbro, Bravo, Dell, Toyota и др.

into the woods

photogrammetry lvls

Mojave Desert Rock Photogrammetry

Статья впервые была опубликована в третьем номере журнала Vertex. Перевод сделан клубом «Перевод всем», автор перевода AlexJP. Мы её отредактировали и надеемся, что вам пригодится. Перевод всего Vertex №3 можно купить по ссылке. Больше работ Гильерме на Artstation.

Владимир FrostBite Хохлов frostbite@progamer.ru

Поделиться

Обсудить