Lost Story: Dev.Log #4 - Часть 1: Фотограмметрия для моделей

Добавлен , опубликован

Введение

Дорогие друзья и фанаты вселенной Half-Life!
Зима, наконец, отступает и сдаёт свои позиции весне, и мы ради приветствовать её новым дневником разработки! Изначально тема этого дневника должна была стать лишь небольшой частью Dev.Log №3, подготовленного для конкурса «Indie DB - 2015 Indie of the Year Awards», но жизнь вносит свои коррективы и мы не успели осветить её в прошлом дневнике. Но, как говорится, всё что ни делается - всё к лучшему! У нас появилось больше времени и в итоге небольшая заметка переросла в полноценный дневник разработки, да такой большой, что нам пришлось разделить его на две части!
Касательно темы дневника, как вы уже возможно знаете, некоторое время назад мы намекнули на неё, загадав нашим подписчикам загадку: «Что общего между пасмурным днём и пятнадцатисантиметровым саморезом?». К великому удивлению, мы получили просто массу всевозможных ответов: глупых, странных, смешных и даже вполне серьезных. :) К сожалению, никто так и не смог дать полностью правильный ответ, хотя несколько человек были очень близки.
Ну что ж, барабанная дробь … Что общего между пасмурным днём и пятнадцатисантиметровым саморезом? Правильный ответ - и то и другое позволяет получить мягкий рассеянный свет, так необходимый для получения качественных результатов в процессе фотограмметрии. И как вы уже догадались, фотограмметрия, а точнее процесс создания игрового контента на её основе, и есть тема сегодняшнего дневника. В первой части мы расскажем вам о создании моделей, вторую же часть, которая будет чуть позже, посвятим материалам.
Но для начала немного теории для тех, кто столкнулся с этим термином впервые. Фотограмметрии - это научно-техническая дисциплина, занимающаяся определением формы, размеров, положения и иных характеристик объектов по их фотоизображениям. Существует два основных направления в фотограмметрии: создание карт и планов Земли (и других космических объектов) по снимкам (фототопография), и решение прикладных задач в архитектуре, строительстве, медицине, криминалистике и т. д. (наземная, прикладная фотограмметрия).
В случае 3D графики под этим термином обычно подразумевают процесс получения трехмерной модели объекта и информации о цвете рассеянного отражения от него (или по-простому о цвете объекта) на основе множества фотографий этого объекта, снятых с разных ракурсов. Как правило сам процесс выполняется автоматически в несколько этапов при помощи специальных программ, но финальное качество во многом зависит от того, насколько умело были сделаны исходные фотографии.

Почему фотограмметрия?

Хотя бы потому, что это интересно :) Мы уже проводили несколько экспериментов по фотограмметрии различных предметов и даже накопили небольшой опыт, но нам захотелось раскрыть весь потенциал этой технологии.
О главной же причине расскажем подробнее. Действие Lost Story: The Last Days of Earth будет разворачиваться на обширной территории, игроку предстоит преодолеть десятки километров, и уже в самом начале нам стало ясно, что открытые пространства и природные локации займут как минимум половину этого путешествия.
Внешний вид природных локаций складывается из нескольких главных компонентов: текстура неба у вас над головой, текстура земли у вас под ногами и модели живой и неживой природы, что вас окружают. Перед нами встала проблема - каким образом реализовать все эти компоненты силами небольшой команды и при этом на выходе получить окружение наилучшего качества? Про небо мы поговорим отдельно в следующих дневниках, сейчас же сосредоточимся на остальных компонентах.
Итак, мы стали перебирать варианты. Создание обычных низкополигональных моделей и использование фототекстур - быстро, но результат очень низкого качества, особенно на природных объектах. Создание вручную высокополигональной модели для каждого пня, камня и ствола дерева - качественно, но неимоверно долго для небольшой команды - это десятки моделей, которые предстоит кропотливо сделать вручную.
В результате мы решились на эксперимент - использовать фотограмметрию для того, чтобы создать несколько природных текстур и моделей от начала до конца и выяснить все подводные камни этого метода. К тому же проверить действительно ли он позволяет создавать контент высочайшего уровня, используя минимум ресурсов команды.

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

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

Съёмки в "студии"

О съёмках в «студии» мы задумались, когда стало понятно, что камни, снятые на натуре, не слишком удобно использовать для создания уровней. Дело в том, что большинство валунов глубоко сидят в земле и в финальной модели одна из шести сторон у них будет отсутствовать полностью. Из-за этого с такими валунами сложно работать при создании локации. «Дыра» в основании такого камня ограничивает углы поворота, что в свою очередь не даёт использовать копии моделей близко друг к другу - очень заметно что это одна и та же модель. В силу всех этих причин было решено собрать несколько небольших камней с интересной фактурой и отснять их в «студии».
Почему я пишу «студия» в кавычках? Да потому, что съёмки проводились в домашних условиях, где мы создали импровизированную «студию» из подручных материалов! Для качественной съёмки нужно много света, которого в обычной квартире конечно же не хватает, что ж пришлось отправиться за покупками. Навестив пару фотомагазинов и пустив скупую мужскую слезу на ценники профессионального осветительного оборудования, мы не пали духом и решили действовать иначе.
Спустя пару дней и несколько походов по строительным магазинам «студия» была готова. При помощи наших очумелых ручек: шесть белых простыней превратились в шатёр Аладдина - он же софтбокс для рассеивания света; к мощным уличным светильникам добавились вилки для розетки, удобные выключатели и подставки; из трёх металлических ножек, небольшой столешницы и ткани получилась удобная подставка.
Ну а финальным штрихом стал самодельный постамент со «знаменитыми» пятнадцатисантиметровыми саморезами, который позволяет получать равномерное рассеянное освещение, снимать объект со всех сторон и, как следствие, получать полностью замкнутую модель без дырок.
Съёмки в «студии» идут медленнее, т.к. света всё равно намного меньше чем на улице и приходится использовать штатив. Тем не менее за один рабочий день можно отснять 3-4 объекта. Основной трудностью является монотонность процесса, но мы таки справились и отсняли десяток камней, а также несколько других предметов.

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

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

Результаты

После получения высокополигональных моделей процесс мало чем отличается от процесса создания качественного контента для игр обычными методами, есть лишь небольшие нюансы. Сперва на некоторых высокополигональных моделях были исправлены небольшие дефекты рельефа, потом на основе высокополигональных моделей в процессе ретопологии были созданы низкополигональные модели для игрового движка.
Стоит, правда, отметить, что в силу того, что природные объекты обладают хаотичной поверхностью, ретопология производилась почти полностью в автоматическом режиме. Ещё одно небольшое отличие: после создания UV развертки, с высокополигональной модели помимо обычной информации (рельефа, затенения, изгиба поверхности и проч.) на текстурные координаты низкополигональной модели была перенесена и альбедо карта.
Финальным этапом работы стала подготовка материалов и моделей для движка и настройка цвета альбедо карты, чтобы все модели лучше подходили друг к другу и вписывались в окружение. Но это ещё не всё! В финале мы провели ещё один небольшой эксперимент.
Наши модели камней обладают замкнутой геометрией, это значит что мы можем расположить их на уровне под любым углом. При этом на текстуре наших камней изначально нет мха, но у нас есть отдельный материал мха, также полученный при помощи фотограмметрии (про материалы подробнее во второй части). Таким образом, мы можем накладывать мох с любой стороны наших камней и получать ещё больше вариаций того, как они будут выглядеть!
«Но мох же должен быть пушистым!» - скажете вы. Верно! Вот тут то мы и вспомнили про метод времён Play Station 2, а именно про многослойную геометрию с альфа каналом. Результат нас вполне устроил: выглядит отлично, при этом ресурсов почти не требует! Вот так, работая над фотограмметрией, у нас появился метод для создания пушистых материалов, будь то мох, ворс или даже шерсть ;)
Финальные низкополигональные модели вы можете видеть выше и ниже. Их рендер максимально приближен к тому, как они будут выглядеть в игре. Скриншоты же из игры с финальными моделями ждут вас во второй части этого дневника, которая будет опубликована чуть позднее.
В заключении хотелось бы отметить, что по нашим подсчётам на получение одной финальной модели из фотографий у нас ушло в среднем 2-3 дня (не учитывая время на съёмку). При этом занимался этим только один 3D художник, и это впечатляет, учитывая финальное качество.
На сегодня всё. Ожидайте вторую часть дневника и не забывайте делиться своим мнением в комментариях.
Ваши мартовские ежи в затемнённых очках из
Rock Path Collective.

Альтернативные источники

`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
14
8 лет назад
0
В каком пакете генерировали меши?
0
5
8 лет назад
0
В каком пакете генерировали меши?
Agisoft Photoscan
0
33
8 лет назад
0
Очень интересно: сколько нужно отснять фотографий, чтобы получить хороший меш объекта?
0
5
8 лет назад
0
сколько нужно отснять фотографий, чтобы получить хороший меш объекта?
Где-то 75 -200 фоток, зависит от сложности объекта и от качества самих фотографий.
0
14
8 лет назад
0
Тоже баловался фотограмметрией пару раз, очень мощный метод. Крупные объекты не пробовали делать? Здания, к примеру, географические объекты?
4
5
8 лет назад
Отредактирован hopelesscate
4
Тоже баловался фотограмметрией пару раз, очень мощный метод. Крупные объекты не пробовали делать? Здания, к примеру, географические объекты?
Нет, не пробовали. На то есть несколько причин:
  1. Мы используем фотограмметрию целенаправленно, как упоминалось в тексте: "Действие Lost Story: The Last Days of Earth будет разворачиваться на обширной территории, игроку предстоит преодолеть десятки километров, и уже в самом начале нам стало ясно, что открытые пространства и природные локации займут как минимум половину этого путешествия".
  2. Для зданий имеет смысл снимать только материалы, т.к. модели зданий безусловно намного быстрее делать в ручную во внутриигровом редакторе.
  3. Движок Source имеет одну особенность: желательно, чтобы как можно больше примитивных объектов на уровне были созданы в редакторе и сгенерированы при компиляции. Именно они позволяют нарезать пространство на листы и оптимизировать его. Поэтому для зданий и стен приходится использовать примитивы из игрового редактора.
Проще говоря: крупные объекты фотограмметрией делать долго и не практично для игры, поэтому и не пробовали.
0
13
8 лет назад
Отредактирован ENAleksey
0
Поэтому для зданий и стен приходится использовать примитивы из игрового редактора
Я всегда думал, что все модели лучше делать в специализированном 3d редакторе, так как можно максимально оптимизировать меши, удаляя невидимые плоскости.
Значит здания делаете из стандартных box'ов, а редактор сам оптимизирует всю сцену, удаляя (а не просто исключая из очереди рендеринга) примитивы, скрытые другими? Просто я вообще не знаком с Source Engine.
2
21
8 лет назад
2
ENAleksey:
Поэтому для зданий и стен приходится использовать примитивы из игрового редактора
Я всегда думал, что все модели лучше делать в специализированном 3d редакторе, так как можно максимально оптимизировать меши, удаляя невидимые плоскости.
Значит здания делаете из стандартных box'ов, а редактор сам оптимизирует всю сцену, удаляя (а не просто исключая из очереди рендеринга) примитивы, скрытые другими? Просто я вообще не знаком с Source Engine.
Рендерятся ближайшие листья и ненужное загораживается ареапорталами.
Вот еще пикча на эту тему)
0
13
8 лет назад
Отредактирован ENAleksey
0
Проще говоря: крупные объекты фотограмметрией делать долго и не практично для игры, поэтому и не пробовали.
А не будет ли слишком большого контраста между фото-текстурами и обычными, рисованными? И как вы делаете эти обычные текстуры? Находите их в бесплатных библиотеках, либо рисуете сами (если да, то каким софтом пользуетесь)?
Используете ли Quixel Suite, который, вроде как, позволяет создавать не только PBS текстуры, но и обычные с Фонгом. Как по мне, он очень удобен и позволяет создавать контент высокого качества, даже не владея особыми навыками работы с векторной графикой.
4
5
8 лет назад
Отредактирован hopelesscate
4
Рендерятся ближайшие листья и ненужное загораживается ареапорталами.
Вот еще пикча на эту тему)
Хехе) Приятно видеть на ресурсе человека, который так же имеет суровый опыт работы с движком х)
А не будет ли слишком большого контраста между фото-текстурами и обычными, рисованными? И как вы делаете эти обычные текстуры? Находите их в бесплатных библиотеках, либо рисуете сами (если да, то каким софтом пользуетесь)?
Используете ли Quixel Suite, который, вроде как, позволяет создавать не только PBS текстуры, но и обычные с Фонгом. Как по мне, он очень удобен и позволяет создавать контент высокого качества, даже не владея особыми навыками работы с векторной графикой.
Об этом будет рассказано в следующей части дневника разработки, который будет опубликован в эту пятницу. с:
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.