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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11
Начать дискуссию