Ес­ли ты пла­ниру­ешь сде­лать трех­мерную игру или при­ложе­ние, поэк­спе­римен­тировать с AR или VR, то, воз­можно, уже подумы­вал о 3D-ска­ниро­вании. Давай погово­рим о раз­ных реали­заци­ях этой тех­нологии, а так­же о том, какое обо­рудо­вание тебе при­годит­ся.

Ска­ниро­вание сей­час при­меня­ют все чаще, и с раз­вити­ем этой тех­нологии она может стать еще более вос­тре­бован­ной при раз­работ­ке игр и при­ложе­ний, в том чис­ле для VR. Реконс­тру­иро­вание объ­ектов поз­волит соз­давать мак­сималь­но реалис­тичные игры, даже если у тебя нет пол­ноцен­ной игро­вой сту­дии, а так­же зна­читель­но сэконо­мит вре­мя и средс­тва.

Игра Safe Night
Иг­ра Safe Night

В этой статье ты узна­ешь о четырех спо­собах ска­ниро­вания реаль­нос­ти:

  • фо­тог­раммет­рии;
  • сис­темах струк­туриро­ван­ного све­та;
  • ToF-камерах и лазерах;
  • ка­мерах све­тово­го поля.
 

Фотограмметрия

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

Как это работает?

На пер­вом эта­пе дела­ем серию фото с помощью обыч­ной камеры. Фотог­рафиру­ем объ­ект или сце­ну со всех сто­рон так, что­бы сним­ки получи­лись внах­лест.

На вто­ром эта­пе ПО находит на каж­дой фотог­рафии опре­деля­ющие соот­ветс­твия. Сущес­тву­ет нес­коль­ко методов получе­ния таких дес­крип­торов: SIFT, SURF, KAZE, AKAZE, ORB и BRISK. Пока срав­нитель­ный ана­лиз этих инс­тру­мен­тов на рус­ском язы­ке недос­тупен. Деталь­но изу­чить этот воп­рос поможет ан­гло­языч­ная статья на Research Gate.

На треть­ем эта­пе ПО сопос­тавля­ет дес­крип­торы друг с дру­гом. Получа­ется трех­мерное обла­ко точек, которое опи­сыва­ет реконс­тру­ируемый объ­ект. Для каж­дой фотог­рафии ПО стро­ит кар­ту глу­бины, где рас­счи­тано рас­сто­яние от камеры до каж­дого пик­селя.

Софт объ­еди­няет дан­ные с нес­коль­ких карт глу­бины и стро­ит меш объ­екта.

За­тем алго­ритм учи­тыва­ет усреднен­ное зна­чение пик­селей и тек­сту­риру­ет меш. Ре­зуль­тат на видео.

Го­товую модель невоз­можно исполь­зовать для соз­дания 3D-кон­тента или VR. Пос­ле фотог­раммет­рии нуж­на руч­ная доработ­ка, о ней более под­робно ты можешь про­читать в статье на сай­те Exyte.

Какое оборудование понадобится?

Для фотог­раммет­рии подой­дут нес­коль­ко устрой­ств — камера смар­тфо­на (объ­ект на кар­тинке выше снят на Samsung S8+), зер­каль­ная или без­зеркаль­ная камера со сле­дующи­ми фун­кци­ями и свой­ства­ми:

  • фик­сация балан­са белого;
  • фик­сация фокус­ного рас­сто­яния;
  • ми­нималь­ная дис­торсия объ­екти­ва;
  • ко­рот­кая выдер­жка при съем­ке с рук.

Ес­ли ты сни­маешь на смар­тфон, имей в виду, что для фотог­раммет­рии нужен руч­ной режим съем­ки и хорошая опти­ка. Для получе­ния качес­твен­ного резуль­тата луч­ше все­го исполь­зовать новые модели. На Android и iOS есть при­ложе­ния, которые фотог­рафиру­ют объ­ект и демонс­три­руют пред­варитель­ный резуль­тат ска­ниро­вания в реаль­ном вре­мени. Пос­ле объ­ект реконс­тру­ирует­ся на смар­тфо­не или в обла­ке, но резуль­тат не впе­чат­ляет. Получен­ные модели не годят­ся для 3D-кон­тента или VR. На мой взгляд, наибо­лее пер­спек­тивное при­ложе­ние — display.land.

Да­же луч­шие камеры смар­тфо­нов име­ют слиш­ком малые физичес­кие раз­меры мат­рицы и линз. Без спе­циаль­ных прог­рам­мно‑аппа­рат­ных филь­тров они усту­пают пол­нофор­матным камерам, осо­бен­но если осве­щение неидеаль­ное.

info

Ес­ли тебе инте­рес­но, может ли камера смар­тфо­на сопер­ничать с сис­темны­ми камера­ми, ты можешь почитать об этом в статье на сай­те DXO.

От качес­тва пол­нофор­матной камеры зависит мно­гое, но основную работу в реконс­трук­ции объ­екта дела­ет ПО, нап­ример плат­форма MeshRoom или ком­мерчес­кое ПО RealityCapture.

Для реконс­тру­иро­вания с исполь­зовани­ем MeshRoom тре­бует­ся мощ­ный компь­ютер (вро­де Core i7, 32 Гбайт RAM, Nvidia CUDA).

Ограничения фотограмметрии

У фотог­раммет­рии нес­коль­ко огра­ниче­ний:

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

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Павел Нуждин

Руководитель отдела VR-разработки в exyte.com. Закончил АлгГТУ с магистерской степенью в прикладной математике. В своей профессиональной деятельности занимался разработкой программного обеспечения и системам телеметрии. В 2018 году начал интересовать VR разработкой и занялся пилотным для exyte.com проектом в этой области. С тех пор его проект развернулся во франшизу VR-аркад с полным погружением, которая имеет более 30 локаций по всему миру.

Check Also

Как работает EDR. Подробно разбираем механизмы антивирусной защиты

В «Хакере» часто обсуждается скрытие процессов и системных вызовов, обфускация кода и проч…

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии