image

В данной статье будет рассказано о фотограмметрии и опыте её использовании при создании контента для трёхмерной компьютерной игры во вселенной Half-Life, разработкой которой мы занимаемся уже не первый год.

Введение


Для начала немного теории для тех, кто столкнулся с этим термином впервые. Фотограмметрия — это научно-техническая дисциплина, занимающаяся определением формы, размеров, положения и иных характеристик объектов по их фотоизображениям. Существует два основных направления в фотограмметрии: создание карт и планов Земли (и других космических объектов) по снимкам (фототопография), и решение прикладных задач в архитектуре, строительстве, медицине, криминалистике и т.д. (наземная, прикладная фотограмметрия).

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

Почему мы решили использовать фотограмметрию?


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

image

О главной же причине расскажем подробнее. Действие игры «Lost Story: The Last Days of Earth» будет разворачиваться на обширной территории, игроку предстоит преодолеть десятки километров, и уже в самом начале нам стало ясно, что открытые пространства и природные локации займут как минимум половину этого путешествия.

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

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

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

Съёмки на натуре


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

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

image

В целом, съёмки на натуре не вызывают особых трудностей, и один человек за один рабочий день может качественно отснять 4-5 объектов, а если работать в паре то можно и больше 10, что довольно внушительно. Кроме зависимости от погоды обнаружился лишь ещё один неприятный момент — чтобы найти интересные объекты иногда забираешься в самую чащу леса. Там, как правило, невозможно работать даже с моноподом и приходится проявлять чудеса акробатики и растяжки.

После нескольких наших вылазок мы теперь точно знаем как именно тренировался знаменитый актёр боевиков 90x на фото выше.

Съёмки в «студии»


О съёмках в «студии» мы задумались, когда стало понятно, что камни, снятые на натуре, не слишком удобно использовать для создания уровней. Дело в том, что большинство валунов глубоко сидят в земле и в финальной модели одна из шести сторон у них будет отсутствовать полностью. Из-за этого с такими валунами сложно работать при создании локации. «Дыра» в основании такого камня ограничивает углы поворота, что в свою очередь не даёт использовать копии моделей близко друг к другу — очень заметно что это одна и та же модель. В силу всех этих причин было решено собрать несколько небольших камней с интересной фактурой и отснять их в «студии».

Почему я пишу «студия» в кавычках? Да потому, что съёмки проводились в домашних условиях, где мы создали импровизированную «студию» из подручных материалов! Для качественной съёмки нужно много света, которого в обычной квартире конечно же не хватает, что ж пришлось отправиться за покупками. Навестив пару фотомагазинов и пустив скупую мужскую слезу на ценники профессионального осветительного оборудования, мы не пали духом и решили действовать иначе.

image

Спустя пару дней и несколько походов по строительным магазинам «студия» была готова. При помощи наших очумелых ручек: шесть белых простыней превратились в шатёр Аладдина — он же софтбокс для рассеивания света; к мощным уличным светильникам добавились вилки для розетки, удобные выключатели и подставки; из трёх металлических ножек, небольшой столешницы и ткани получилась удобная подставка.

Ну а финальным штрихом стал самодельный постамент со «знаменитыми» пятнадцатисантиметровыми саморезами, который позволяет получать равномерное рассеянное освещение, снимать объект со всех сторон и, как следствие, получать полностью замкнутую модель без дырок.

image

Съёмки в «студии» идут медленнее, т.к. света намного меньше чем на улице и приходится использовать штатив. Тем не менее за один рабочий день можно отснять 3-4 объекта. Основной трудностью является монотонность процесса, но мы таки справились и отсняли десяток камней, а также несколько других предметов.

Обработка фото


Следующим этапом после съёмки является непосредственно фотограмметрия. Все фотографии перед загрузкой в программу для фотограмметрии мы дополнительно обрабатываем, стараясь убрать остатки теней и бликов. Сам процесс происходит в несколько этапов, каждый из которых требует специальной настройки, которая может занять достаточное время если у вас мало опыта или если исходные фотографии вышли низкого качества. У нас уже был небольшой опыт, так что весь процесс обработки одного объекта у нас занимал примерно 2 часа на обычном игровом компьютере прошлогодней сборки.

В результате обработки мы получили модели с полигонажем от 9 до 13 млн треугольников и альбедо картой размером 16 384 пикселей для каждой модели (представлены ниже).

image

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

Результаты


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

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

image


Финальным этапом работы стала подготовка материалов и моделей для движка и настройка цвета альбедо карты, чтобы все модели лучше подходили друг к другу и вписывались в окружение. Но это ещё не всё! В финале мы провели ещё один небольшой эксперимент.

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

«Но мох же должен быть пушистым!» — скажете вы. Верно! Вот тут то мы и вспомнили про метод времён Play Station 2, а именно про многослойную геометрию с альфа каналом. Результат нас вполне устроил: выглядит отлично, при этом ресурсов почти не требует! Вот так, работая над фотограмметрией, у нас появился метод для создания пушистых материалов, будь то мох, ворс или даже шерсть.

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

image


В заключении хотелось бы отметить, что по нашим подсчётам на получение одной финальной модели из фотографий у нас ушло в среднем 2-3 дня (не учитывая время на съёмку). При этом занимался этим только один 3D художник, и это впечатляет, учитывая финальное качество.

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

Комментарии (15)


  1. cdmax2002
    18.03.2016 13:14
    +13

    Каким софтом то пользовались?


    1. hitmen047
      19.03.2016 16:06
      +1

      Agisoft Photoscan


  1. infrapro
    18.03.2016 13:26
    +5

    а сколько нужно сделать снимков на один объект?


    1. hitmen047
      18.03.2016 15:29
      +5

      75 -200 фоток, зависит от сложности объекта и от качества самих фотографий.


  1. sidristij
    18.03.2016 14:36
    +7

    Конечно, когда играешь, не задумываешься над объемом труда, вложенного в игру… И просто ставишь клише: "ну норм" или там… "ну че за отстой, тут боты тупые"… )) А труда килотонны ))


  1. OlegKozlov
    18.03.2016 15:37

    Впечатляет!


  1. maaGames
    18.03.2016 15:46
    +1

    Супершикарно!
    Но не покидает очучение, что камни и прочие низкополигональные модельки было быстрее, проще и дешевле смоделировать в 3D редакторе.


    1. hitmen047
      18.03.2016 16:17

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


  1. Psychosynthesis
    18.03.2016 16:09

    Офигеть. Я б в это поиграл, хотя и не играю ни во что кроме сапёра уже года два почти…


    1. Smi1e
      18.03.2016 16:46

      Поиграйте в The Vanishing of Ethan Carter. Визуально очень приятная и атмосферная игра.


  1. roller
    19.03.2016 10:56

    А чего вращающуюся платформу на ардуинке + драйвере + шаговике простейшую не сделали? Это делается буквально за пару часов, софт который крутит и подает команды фотику есть больше одного, в интернете есть варианты реализаций.


    1. hitmen047
      19.03.2016 16:07
      +2

      К сожалению, как показал наш опыт — поворотный стол нам не подходит. Для его использования, в силу особенностей алгоритма работы фотограмметрии, необходимо намного более качественное освещение, чем мы можем себе пока позволить. Потребуется практически идеальная, в отличие от нашей постановка света. Если на объекте останется хоть малейшая видимая тень, то она начнёт перемещаться по поверхности во время поворота, и сразу же возникнут проблемы с сопоставлением одного и того же участка объекта на соседних фото (на одном фото он может оказаться в тени, а на другой освещен)


  1. FlameStorm
    22.03.2016 12:39

    Спасибо за статью! Вы открыли мне прикладную геймдев-фотограмметрию. С интересом жду продолжения.