{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Про искусственный интеллект и компьютерную графику: как Spline AI и Гаусcов сплэттинг могут перевернуть 3D

ИИ и компьютерная графика

Всем привет. Сегодня хочу написать небольшой обзорчик, совместив свое старое прошлое и настоящее: Обучение ИИ в Цифротехе и игры. В своей прошлой статье я писал, что активно поигрывал в игры в какой-то период своей жизни (увлечение меня и притянуло к сфере программирования), так вот на свою тяжелую долю игровой жизни мне выпало немного позаниматься трехмеркой: полигональное моделирование (создаешь твердотельные объекты по типу столов, оружия), а впоследствии и попытки в геймдев и свои игровые уровни в движках по типу Unreal Engine.

Я всегда сталкивался с одной крупной проблемой – поиск пропсов. Пропсы – массовка в мире игрового окружения, те самые предметы, которые создают «атмосферу» для игрока. Чтобы понять «холостого» парня нужно увидеть его квартиру. То же и в геймдеве – пропсы определяют отношение к игровому уровню. И тут есть две закономерности: чем больше пропсов – тем сложнее внедрять игровые механики, чем меньше пропсов – тем пространство больше кажется мертвым. Чем больше у вас разнообразных предметов на игровом уровне, тем пользователя «сложнее» вести по задумке гейм-дизайнера. Все просто. Некоторые ААА проекты умудряются балансировать и изощряться разными способами: включать в игровые уровни композицию, делать всякие геометрические паттерны и т.д. Но как думаете, куда клонит Environment artist, который хочет просто покрасоваться? – конечно, в сторону красивой картинки. Но и тут есть проблема.

Ты один, а уникальных пропсов много. И вот выходит Spline, туда добавляют все новые функции, и ты задумываешься о том, насколько проще бы стала сфера 3D с таким инструментами. Посидел часов 20 (что для сферы трехмерной графики жалкий пшик, когда на один игровой уровень тратят по 300 часов работы) и получил сотню готовых пропсов. Относительно недавно туда внедрили гауссов сплэттинг, способ анализа изображения и создания по нему 3D модели. Сейчас модели можно экспортировать только в STL формате, а это значит, что геометрия у объектов явно хромает. Поэтому ждем математиков, которые смогут не только генерировать объекты, но и ровнять геометрию, чтобы художники смогли использовать модели в своих реальных проектах.

Как вообще работает Spline?

Spline – упрощенный редактор для сборки собственной 3D сцены: настройка материалов, света и окружения. Чем-то Spline напоминает Marmoset по своему функционалу, помимо интегрированного ИИ. Поэтому об инструменте пока что рано говорить, как о реальной замене junior’ов в среде 3D моделирования, ящики все еще будут пилить будут самые младшие сотрудники. Но если уж очень хочется создать продуктовую визуализацию – пожалуйста весь набор инструментов присутствует.

Помимо простого функционала такого «предметного» рендера костяк программы формирует LLM – нейросеть переводит запросы с естественного языка и позволяет манипулировать объектами. Условно, насоздавали вы 20 кубов, торов, пирамид и попросили повернуть их в хаотичном порядке – сделано, хочется сделать физически-корректную анимацию – готово. Но в таком подходе есть существенная проблема: нейросеть практически не позволяет выйти за рамки простой болванистой геометрии. Каждый новый рендер напоминает работу моушен-дизайнера, а мы же тут про перспективы использования ИИ в геймдеве.

С другой стороны, Spline AI не про «тупое» генерирование изображения с наложенными непонятно как текстурами прямо с вашего материала, а собственной генерацией текстур и симуляцией физики. Что уже неплохо. Ведь если посмотреть на альтернативные варианты генерации – почти все не могут ничего подобного предложить. Нейросеть буквально сгенерирует все необходимые текстурные карты и наложит на объект. Не очень хорошо такой инструмент работает со сгенерированными объектами, т. к. из-за неграмотной геометрии алгоритм не может сделать внятную развертку, тем не менее.

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

Гаусов сплэттинг или как нейросети буквально пробивают будущее компьютерной графики

Попытки на основе сканов делать 3D модели относительно не нова, но только недавно в 2023 году предложили использовать новый метод, которые предлагал за час создать реалистичную сцену.

Трёхмерный гауссов сплэттинг в реальном времени для рендеринга radiance field — это сложный метод создания красивых изображений 3D-сцен.

Итак, у нас есть сцена, например комната с мебелью и светом. Radiance field — это карта света в каждой точке внутри этой комнаты. Там, где много света, на карте будет ярче, а там, где меньше света, — темнее. Каждая точка в radiance field преобразуется в гауссов сплат — объемную функцию, описывающую световые характеристики вокруг точки. Гауссовы функции используются для создания плавных переходов в освещении и цвете. Это как «облака» света вокруг каждой точки в комнате. Далее, мы берём каждое из этих облаков света и «проецируем» его на экран. Таким образом, мы получаем 2D-изображение, которое видит наша камера. На этом этапе учитываются различные вещи, такие как тени, отражения и яркость света. Наконец, все эти "облака" сливаются и рендерятся на экране, создавая окончательное изображение. Когда мы смотрим на экран, мы видим красивую и реалистичную картину комнаты с мебелью и светом.

Была и альтернатива, которую презентовали так же относительно недавно. Работа Nerf основывалась на создании полей излучения, которые описывают световые свойства сцены в каждой точке пространства. Для создания этой функции Nerf обучает нейронную сеть на большом наборе данных трехмерных сцен, а значит для создания одной 3D сцены требовалось немало как вычислительной мощности, так и времени.

Методы работали примерно одинаково, но сплэттинг был быстрее, хотя все еще требовал долгого обучения. Поэтому относительно недавно выкатили ИИ, которое оптимизирует процесс и позволяет генерировать сцену буквально в реальном времени. Шаг оптимизации состоит из обучения методом стохастического градиентного спуска. Рендерится картинка на основе гауссиан. Сравнивается с исходными данными и корректируется. Процесс повторяется тысячи раз.

Исходный код «оптимизатора», кстати, открыт всем желающим: «https://github.com/graphdeco-inria/gaussian-splatting»

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

Spline же работает удаленно и может позволить себе хорошие вычислительные мощности, а теперь каждый пользователь может установить Luma или Polycam и зарендерить любой объект под рукой.

Что мы имеем по итогу?

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

Cервис – первое приложение, которое позволяет использовать прорывной гауссов сплэттинг в настоящем времени. И хотя мы пока что не получили инструмента, который заменит низкоквалифицированный труд рядового 3D художника – мы на пути к этому.

0
Комментарии
-3 комментариев
Раскрывать всегда