Компьютер, смоделируй мне мир. Фотограмметрия в играх

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com (подробнее »)
| Компьютерные и мобильные игры

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

И тут стоит сделать небольшое отступление и поговорить о такой области науки и техники как фотограмметрия. Это немолодая наука, зародившаяся ещё в середине XIX века и полноценно развившаяся уже в XX. Когда люди получили возможность всегда носить с собой относительно лёгкий фотоаппарат, который может быстро делать фотографии, многие стали активно фотографировать не только других людей, но и пейзажи. И многие специалисты во многих отраслях пришли к одной и той же мысли. Если люди способны воспринимать размер, объём и местоположение различных объектов в окружающем мире своими глазами и переносить всё это на географические карты, то почему бы не автоматизировать процесс составления карт с помощью фотографий? Почему бы, к примеру, не составлять карты по аэрофотосъёмке? И тут всё завертелось. Активно начало развиваться направление алгоритмов транслирующих фотографии ландшафтов в различные форматы карт. На данный момент практически все карты местности построены с использованием этих алгоритмов. Люди уже не сидят и вручную не рисуют их, а лишь обрабатывают многоспектральные аэрофотоснимки и снимки со спутников.

Самое интересное произошло уже в начале XXI века. Компьютеры получили широкое распространение и стали использоваться для самых разных задач, появилась цифровая фотография и 3D моделирование. И тут, опять же, очень многие люди подумали — а зачем делать модели вручную, если можно переносить их с фотографий? Не сказать, что эта идея с ходу получила мощное развитие, но сейчас, уже спустя два десятилетия, многие игровые студии уже используют достижения в этой области.

 Себастьян ван Элвердинге, один из разработчиков Forza Horizon 3, рассказывает как при разработке игры использовалась фотограмметрия для создания фотореалистичных текстур. И даже приводит пример подобной работы, на движке Unreal Engine 4.

 

Разработчики перезапуска Modern Warfare рассказывают, как использовали фотограмметрию уже не только для текстурирования, но и для создания полноценных 3D моделей.

Разработчики Flight Simulator 2020 рассказывают, как использовали фотограмметрию для создания всего игрового мира, на основе реальных снимков Земли. И этот игровой мир по размерам не уступает реальному миру.

Даже игровая индустрия СНГ не обошла стороной эти перспективные технологии.

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

Но раз всё так хорошо, почему эти технологии не используются повсеместно? Ответ, к сожалению, в ресурсоёмкости данных технологий. Infinity Ward потребовалось создать целый стенд с 200 фотоаппаратами и специальным ПО, что бы можно было формировать 3D модели с достаточным уровнем детализации. A Microsoft подключило к разработке свои архивы космических снимков Земли и вычислительные мощности Azure, что бы построить игровой мир. Даже не все разработчики AAA-игр могут позволить себе подобное.

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

И именно тут и выступает на сцену ИИ. Классические алгоритмы фотограмметрии имеют определённое ограничение — они работают с пикселями. Эти алгоритмы не воспринимают объекты на фотографиях именно как объекты. Они, по конкретным переходам светотени, определяют границы объектов, характер их материала и прочие геометрические особенности. Естественно, это не самый лучший подход и 3D модели, полученные таким образом, почти всегда требуют ручной постобработки. Не говоря уже о том, что они предъявляют серьёзные требования к качеству освещения, при фотосъёмке, и к самой фототехнике.

Но совсем иначе фотографии обрабатывает ИИ. Говоря, к примеру, о всё тех же искусственных нейронных сетях (ИНС), мы говорим о моделях «обученных» на огромном массиве разнообразных фотографий. Такие модели распознают на фотографиях именно объекты. Они уже «знают», что такое дерево и могут отличить его от собаки.

Именно на базе ИНС и разрабатываются новые алгоритмы фотограмметрии. Как в России, так и на западе. Системы, на базе ИНС, могут не только строить более чёткие 3D модели. Они менее требовательны к качеству фотографий, так что уже не потребуется строить отдельную комнату для фотографирования объектов. И смоделировать можно уже будет довольно крупные объекты. К тому же? ИНС универсальны, как и во всех других областях. Одну и ту же архитектуру можно будет использовать для моделирования совершенно разных объектов и не придётся каждый раз заново писать новую программу. А уже обученная ИНС для своей работы не будет требовать мощного железа. Такая сеть сможет запускаться и на персональных компьютерах, и на слабых облачных серверах.

Подводя итог, можно сказать, что область автоматической и автоматизированной генерации текстур и 3D моделей уже не просто активно развивается, но и используется в отрасли создания компьютерных игр. В ближайшее время уже стоит ожидать широкого распространения этих технологий. И, во многом, это распространение будет возможно благодаря ИИ. Однако, стоит ли ожидать, что компьютер заменит всех 3D-художников и эта профессия пропадёт? В ответе на данный вопрос стоит не забывать главного недостатка фотограмметрии — она может смоделировать только то, что сфотографировано. Эти технологии не позволят смоделировать эльфийский город или инопланетную расу по вполне очевидным причинам. К тому же, несмотря на возраст этой научно-технической области, до сих пор никуда не делась профессия картографов. Она просто видоизменилась. Вместо того, что бы лично кататься по миру, эти люди занимаются постобработкой и анализом смоделированных карт. Так и с 3D моделированием — даже самые лучшие и точные модели потребуют постобработки. А, в случае необходимости, модификация уже готовых моделей гораздо менее затратна, чем повторный процесс построения такой модели по модифицированному оригиналу.

Но сможет ли современный ИИ генерировать игровой мир или какие то его части полностью самостоятельно, без необходимости в оригинале из реального мира? Может ли современный ИИ создать в игровом мире то, что до этого никогда не существовало в реальном? На это я могу смело сказать, что да, он уже это может. Но этот вопрос уже для отдельной статьи.

Автор не входит в состав редакции iXBT.com (подробнее »)

11 комментариев

Numitor
Хочется тоже ответить на поставленные автором вотпросы.
Сможет ли «ИНС» генерировать игровой мир самостоятельно: так как «ИНС» не способна создать новое знание а лишь обрабатывает данные по алгоритму, то ответ — нет. Полностью с нуля придумать обтекты, текстуры, осмысленность и функционирование игровых обьектов «ИНС» не может. Но, есть хорошее практическое применения, «ИНС» вполне способна генерить псевдослучайные игровые уровни из заранее подготовленных блоков, значительная оригинальность тут не требуется и игрока легко обмануть просто рандомно тасуя блоки, например поделенного на 10-20 частей игрового уровня.
Я не считаю «ИНС» чем то новым, это обычное эволюционное развитие техники, ну а хайповое название, тут да, не нае… не продашь.
Arguzd
Ну, с одной стороны, то же самое можно сказать и про людей. Люди никогда не создавали чего то такого, чего до этого никогда не было в природе, в том или ином виде. Никто никогда не создавал технологии с нуля. Просто знания из разных областей природы или человеческой деятельности комбинировались для создания чего то нового. Даже компьютеры построены по известным законам, встречающимся в природе. Те же диоды, в своём примитивном виде, могут образоваться естественным путём в местах, куда ударяет молния. Так что их не изобрели с нуля, а просто открыли свойство материалов, которое у них уже было. Так же работают и сети. Это уже не линейные алгоритмы с псевдослучайностью, которые оперируют заготовками. Сети обобщают знания из обучающей выборки и, на их базе, создают новые знания. Так что нет, они уже не просто комбинируют заготовки, они оперируют заложенными концепциями и генерируют уровни полностью, без использования заготовок. Опять же, если нужны примеры и разбор текущего состояния этих технологий, то там материала на отдельный пост)
Последний раз редактировалось
Numitor
Сильное заявление что человек не создавал то чего нет в природе. Оно противоречит практически всем философским концепциям начиная с 17 века. Диалектика, логика Гегеля все они построены на принципе синтеза, вывода нового из имеющихся данных. Результатом является наша обтективная реальность, техника, коммуникации и т.д. Что вывел нового «ИНС»? Простая задача, поручить «ИНС» эволюционировать самому, пусть развивается сам без человека, пусть выведет новые алгоритмы, лучше чем придумали люди, где все это?
Последний раз редактировалось
Arguzd
Так я про синтез и говорю. Люди выводят новое знание из старого. Они не могут вывести новое знание из ничего. Как и сети. А ИНС уже вполне создаёт новое знание. К примеру, новые виды антибиотиков https://www.kommersant.ru/doc/4266864. И они это сделали далеко не прямым перебором, поскольку прямым перебором этого результата не получилось бы достигнуть даже за тысячелетие, исходя из количества вариантов.
Последний раз редактировалось
Gennadium
Синтез — это не вполне вывод нового из старого. Это в первую очередь результат столкновения тезиса и антитезиса. Но не только в тексте. Ну вот банальный пример: ты хочешь жрат, и у тебя есть кусок сырого мяса — это тезис. Сырое мясо жрат нельзя, т.к. болячки, паразиты, хуже усваивается — это антитезис. Синтез: мясо нужно термически обработать, т.е. сварить, пожарить, потушить — че угодно. Собственно, диалектика во многом как раз про то, что в зависимости от тех или иных условий, победит либо тезис, и ты решишь жрат сырое мясо, либо антитезис, и ты решишь не жрат это мясо вообще, либо синтез, что в данном случае будет идеальным решением.
Gennadium
Не, ну, собственно, прецедурно генерировать миры из готовых ассетов можно уже давно. Не знаю, каково в этом участие ИИ, правда. Другой вопрос, сможет ли ИИ создавать что-то с нуля так, чтобы это было понятно человеку. Образчики нейросетевого искусства сейчас — это штучка для особых ценителей. Сразу скажу: мое мнение — да, но уже тогда, когда ИИ смогут на равных общаться с людьми и быть частью общества.
Arguzd
Ну, если речь идёт про полноценную разработку игр от и до, без всякого участия человека, то наверное) Хотя и всё равно не факт) А вот какие то части игр уже вполне может делать и сейчас) Не просто генерировать из ассетов, а именно создавать.
Gennadium
Хм, а например? Или ты об этом писать собираешься, и лучше статью подождать?
Arguzd
Могу описать один пример — есть такой вид сетей, как автоэнкодеры. Их обучение заключается в том, что они должны на выходе получить сигнал наиболее близкий ко входному. При этом их архитектура такова, что они не могут просто скопировать сигнал. При прохождении через сеть этот сигнал обязательно будет сжат с потерей данных и сеть должна будет его восстановить. Казалось бы, причём тут генерация нового знания) А смысл в том, что эта архитектура обучается, по факту, генерировать полный сигнал из неполного входа, при этом запоминая концепцию и определение того, как должен выглядеть полный сигнал. Сейчас автоэнкодер в основном используется для восстановления данных, но у него есть и крайне интересная область применения — его обучают концепциям какого то определённого сигнала / картинки / структуры, потом подают на вход шум и автоэнкодер восстанавливает из шума этот самый сигнал / картинку / структуру) Причём, полученный результат естественно оказывается как то специфически модифицирован и полностью уникален, поскольку восстанавливался из шума) И, собственно, автоэнкодеры как раз крайне перспективный вариант систем автоматической генерации карт. Их достаточно просто обучить тому, как ландшафт может и не может сочетаться, что на нём может быть, а потом просто подавать на вход поток шума и автоэнкодер будет генерировать абсолютно уникальную карту) То есть, никаких заранее заготовленных и сделанных вручную ассетов. Полностью автоматически сгенерированная карта) К слову, на вход можно подавать и не только шум, но и что то осмысленное. Можно по каким то картинкам генерировать конкретную карту) И тут прям простор для воображения)
Gennadium
Черт возьми, это круто! Откуда такие познания в области ИИ-то?
Последний раз редактировалось
Arguzd
Кандидатскую пишу по теме сетей, поэтому в курсе всяких новинок в этой области)

Добавить комментарий