- PVSM.RU - https://www.pvsm.ru -
Для игры World Void [1] нам понадобилось портировать в Unreal Engine 4 исторический памятник. Моей задачей было сканирование замка. Я ожидал финансирования, которое всё задерживалось, поэтому решил наконец просто взять и сделать всё самостоятельно, без денег, и у меня получилось — я отсканировал замок! Прошло уже несколько месяцев, а я до сих пор в восторге! В этой статье я расскажу, как мне это удалось. Но сначала я хочу поблагодарить Милоша Лукача, Джеффри Иэна Уилсона и 3D Scanning User Group, без которых это бы оказалось невозможным.


Если вкратце, то фотограмметрия — это процесс создания 3D-моделей из нескольких фотоснимков одного объекта, сделанных под разными углами.
Я не буду рассматривать трёхмерное сканирование объектов, эта тема уже достаточно освещена.
Если вы хотите начать осваивать фотограмметрию, то рекомендую это короткое видео [2] Джеймса Кэнди с YouTube. Хоть в нём и упоминается Agisoft Photoscan, рассмотренные концепции сработают в любом другом ПО для фотограмметрии. Можно также изучить Руководство по фотограмметрии для бедных [3].
В своём рабочем процессе фотограмметрию используют очень многие художники, её применяли для демо Kite компании Epic games, в Star Wars Battlefront и бесконечном числе других проектов. Однако большинство этих студий сканировало камни и деревья. Epic games написала пост [4] о том, как создавались ресурсы для демо с открытым миром. Сотрудники компании даже написали пост [5] о выборе оборудования и ещё один [6], описывающий процесс устранения освещения. Крайне рекомендую прочитать эти посты, если вы ещё их не видели.
При сканировании такого большого объекта, как замок, не следует забывать о следующих сложностях:
Я работаю в историческом памятнике Библ, городе в Ливане, который был населён более десяти тысяч лет. Однако сам замок датируется 12 веком. Это относительно небольшой замок по сравнению с более новыми, построенными в некоторых европейских странах, однако каждая стена этого замка создана из высокодетализированной каменной кладки, отшлифованной самим временем.
Под изучением цели я подразумеваю, что нужно зарисовать на бумаге виды сверху и сбоку, разбить их на несколько элементов, выбрать порядок выполнения съёмки и выделить те области, в которых нужно сделать больше снимков.
Кроме того, при сканировании накапливаются ошибки, что приводит к созданию смещённой геометрии, поэтому нужно всегда делать полный набор круговых снимков объекта, чтобы сканы автоматически корректировались. Открытая геометрия может быть неточной.
Также я воспользовался возможностью и сделал со стен замка множество снимков окружающей местности, что позволило добавить в скан ландшафт.
Подсказка: не делайте несколько изображений под разными углами с одной точки (панорамные изображения). Чаще всего это приводит к нежелательным ошибкам.
Полезный способ сканирования небольших туннелей, в которых из-за ограниченного пространства сложно делать снимки со всех углов: шагайте по прямой, и на каждом шаге делайте снимок направленной вперёд камерой. Эта техника даёт меньшее разрешение, но его может оказаться вполне достаточно.

Очень высока вероятность того, что при сканировании вы пропустите несколько ракурсов и снимки будут недостаточно накладываться друг на друга, что приведёт к появлению в скане областей с низким разрешением, так что я крайне рекомендую проверять результат на месте. ПО для 3D-сканирования Reality Capture, например, может проверить перекрытие огромного количества изображений на ноутбуке всего за несколько минут. Это невероятно полезно — оно даст вам понять, в каких областях нужно больше изображений.

Белыми точками обозначены места, из которых сделаны снимки. Синие точки — это добавленные вручную геодезические пункты, помогающие связать некоторые элементы, которые ПО не может связать автоматически. Заметьте, что на крыше замка есть множество геодезических точек, и это нормально, потому что у меня не было дрона и я не мог сделать достаточное количество снимков крыши. К счастью, мне удалось привязать их вручную, что для больших замков может оказаться невозможным. Всего ПО выполнило привязку 4000 фотографий.
Если вы стремитесь как можно больше сэкономить, то вот, что вам нужно:
Я протестировал кучу фотограмметрического ПО, и любые из перечисленных ниже пакетов достойно справляются с небольшими сканами, но мне нужно было обрабатывтаь большие объёмы данных (4000 фотографий разрешением 24 мегапикселя).


Это интересная часть. Камеру я позаимствовал, ПО было бесплатным, однако мне всё равно нужно было обработать скан, потому что мой ноутбук с этим не справился бы. Здесь мне помог Милош Лукач, он предложил обработать данные на своём компьютере, и моя благодарность не знает границ. Он помог мне и в процессе привязки данных, показал пару хитростей для исправления некоторых моих ошибок, свойственных новичкам. В результате, мне пришлось потратиться только на штатив, монопод и SD-карту, что в сумме составило 70 долларов + доставка. То есть да, мне удалось отсканировать замок сверху донизу всего за 70 долларов! Я доказал, что имея желание, можно найти способ. Мне повезло, но везение пришло, когда я начал общаться и заводить знакомства.
За полгода до начала сканирования замка я ничего не знал о 3D-сканировании. И хотя у меня есть соблазн сказать, что я сделал это в одиночку, это будет неправдой — мне помогли, и во многом эта помощь получена от сообщества и профессионалов отрасли. Как мне удалось их найти? Довольно просто — в группе Facebook 3D Scanning Users Group. Сначала я вступил в группу, потом объяснил, что хочу сделать, и получил от сообщества большую поддержку. Один из участников группы, профессионал Джеффри Иэн Уилсон даже написал мне в «личку», и мы плодотворно пообщались. Он наставил меня на путь истинный, понял, что я готов к сложному проекту и дал рекомендации. Кроме того, он посоветовал относиться к его рекомендациям с определённой долей скептицизма. То же самое относится и к моим советам: на самом деле мой опыт в 3D-сканировании составляет всего шесть месяцев, при сканировании замка я наделал ошибок, к счастью, они были не слишком серьёзными и их удалось исправить. Если мне и удалось отсканировать замок, то это не значит, что я — лучший помощник в сканировании замков. Я просто делюсь своим опытом, изучайте и пробуйте всё самостоятельно. Отвечаю на вопрос в заголовке раздела: да, вы можете повторить мой «подвиг», если у вас есть решимость, то нет ничего невозможного.
Я искренне надеюсь, что наш опыт может оказаться полезным для читателей, и если из этого выйдет что-то интересное, напишите мне в Твиттере или поделитесь в группе Facebook, я с удовольствием посмотрю.
Обработка скана из одного миллиарда полигонов и его портирование в игровой движок — это уже совсем другая история, достойная ещё одного поста.
Автор: PatientZero
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka-igr/262378
Ссылки в тексте:
[1] World Void: http://worldvoid.com/
[2] видео: https://www.youtube.com/watch?v=LeU_2SHwhqI
[3] Руководство по фотограмметрии для бедных: http://bertrand-benoit.com/blog/the-poor-mans-guide-to-photogrammetry/
[4] пост: https://www.unrealengine.com/blog/creating-assets-for-open-world-demo
[5] пост: https://www.unrealengine.com/blog/imperfection-for-perfection
[6] ещё один: https://www.unrealengine.com/blog/imperfection-for-perfection-part-2
[7] Источник: https://habrahabr.ru/post/335520/
Нажмите здесь для печати.