Мы в Zibra.AI хотели создать продукты, способные ускорить производство видеоигр. У ML-команды была идея задействовать подход, объединяющий искусственный интеллект и 3D.
Проведя ряд исследований и экспериментов, за восемь месяцев мы зарелизили свой первый продукт.
В чем суть технологии? Для представления объектов в 3D часто используется SDF (Signed Distance Field). SDF обеспечивает менее затратную трассировку лучей, позволяет экономить на текстурах низкого разрешения и обеспечивает более быстрый, плавный геймплей. Но не будем забывать, что все современные методы визуализации ограничиваются памятью. А поскольку SDF представляется как 3D-текстура, она потребляет немало памяти.
Технология Zibra Liquids
К примеру, объект SDF с разрешением 512 x 512 x 512 потребляет 0,5 Гб VRAM
Эту технологию можно использовать для симуляции физики игр, которые используют SDF для моделирования частиц, что стало идеей для нашего первого продукта.
Другими словами, мы воплотили в жизнь идею создания доступных инструментов на базе основной ML-технологии. Инструменты предназначены для:
Это позволит разработчикам игр и VFX-художникам сосредоточиться на креативности, тратя меньше усилий на этапе оптимизации игры.
Среди трудностей, которые приходится преодолевать — моделирование взаимодействия частиц с 3D-объектами сложной формы. Обычно они должны разделить объект сложной формы на несколько простых объектов, а затем настроить имитацию взаимодействия с каждым из них по отдельности. Этот процесс занимает много времени и усилий. В общем, практически все решения, представленные на рынке, не обеспечивают интерактивности или нуждаются в мощных ПК.
Итак, мы решили предоставить возможность полуавтоматизировать процесс разработки игр. Разработчики смогут улучшить графику и физику в игре с более низкими затратами на вычисления на всех устройствах.
Zibra Liquids — первый на рынке плагин моделирования жидкости на основе ML, доступный для коммерческого использования.
Эта ML-технология будет основой многих инструментов, которые сейчас находятся в разработке. Но уже сейчас существует плагин Zibra Liquids, доступный на Unity Asset Store. Это кроссплатформенный плагин физического моделирования жидкости в реальном времени для разработчиков игр.
Zibra Liquids можно использовать для моделирования жидкости в реальном времени и создания взаимодействия жидкости с 3D-объектами любой формы, даже сложной.
Zibra Liquids можно использовать для моделирования жидкости в реальном времени
Плагин работает в режиме реального времени. Он встроен в игровой движок, что означает, что разработчикам больше не нужно использовать дорогостоящее и трудоемкое программное обеспечение, запекать эффекты и решать проблемы их экспорта. Установка Zibra Liquids занимает всего несколько минут. И вот вода уже становится частью нового игрового процесса.
Как это работает? Плагин — это результат синергии запатентованных солверов, которые позволяют осуществлять физически точное моделирование жидкости и нейронных репрезентаций SDF 3D-объектов (на основе ML).
Технология моделирования жидкости была также разработана собственными силами ZibraAI с помощью метода Moving Least Squares Material Point Method. Первоначальный прототип смог симулировать 300 000 частиц за 7 миллисекунд на ноутбуке с GTX 1050 без какой-либо оптимизации. Но мы хотели ускорить реализацию как минимум втрое.
Еще одним вызовом была реализация техники визуализации частиц. Для первого прототипа команда разработала локальный метод трассировки лучей воксельных частиц, отлично подходящий для симуляции, поскольку он также работает с вокселями на сетке моделирования. Эта версия могла отражать жидкость на том же железе со скоростью 30 кадров в секунду, чего было достаточно для запуска бета-теста. Наша компания начала общаться с потенциальными клиентами, создала первые демо и собрала отзывы от сообщества.
После сочетания жидкостного солвера и основной ML-технологии, ZibraAI создала плагин для Unity с интерфейсом и серверным бэкендом, который мог получать сетку от Unity, генерировать SDF и обрабатывать его с помощью технологии ML, упаковывающей данные в серии нейронных вставок на воксель, которые хранятся на сайте клиента. Это сочетание позволяет пользователям легко настроить эффекты и выйти на новый уровень визуального качества.
Команда хотела, чтобы плагин был нативно скомпонован на C++, чтобы контролировать ресурсы, минимизировать нагрузку на процессор и использовать полный спектр методов для оптимизации шейдеров GPU.
Он включал такие распространенные подходы:
Но этого было недостаточно, и мы двинулись дальше. Все критически важные части перформанса Zibra Liquids были оптимизированы:
В целом новый солвер приблизительно в 3,5-4 раза быстрее предыдущей реализации.
Технология проста в использовании
Мы разработали интуитивно понятный и простой интерфейс, чтобы пользователям было проще и приятнее. Чтобы настроить жидкость и увидеть желаемые результаты, достаточно сделать несколько кликов внутри игрового движка.
Технология моделирует несколько миллионов частиц на высокотехнологичном оборудовании, сотни тысяч частиц на ноутбуках и десятки тысяч частиц на мобильных устройствах в режиме реального времени. Плагин обеспечивает реалистичность физики и визуальное качество эффектов на уровне CG в реальном времени и лучшую в своем классе производительность.
Технология способна осуществлять переход в режиме реального времени между физическими и визуальными параметрами, такими как жесткость, сила поверхностного натяжения, граничная сила, металличность, непрозрачность, преломление, отображение и многие другие. Нет необходимости в сложной настройке — пользователи получают желаемое решение «из коробки». Команда предоставляет некоторые готовые комбинации настроек этих параметров — пресеты. То есть пользователь может выбрать необходимый для себя или же настроить самостоятельно.
Теперь под контролем пользователей находится все — даже гравитация. Эта функция позволяет реализовывать новые игровые механики, которые раньше невозможно было создать.
Основная технология ZibraAI позволяет создавать нейронную SDF-репрезентацию для любой геометрии и использовать ее в качестве коллайдера для жидкого компонента в сцене. Можно настроить взаимодействие частиц с 3D-объектами произвольной формы в несколько кликов.
Эта функция позволяет использовать жидкости в качестве игровой механики. Это влияет на внешний вид игры, а также важно для создания реалистических симуляций жидкостей, которые могут передавать силу на объекты в сцене, понимая их вес.
Вам не нужно разбираться в машинном обучении, чтобы использовать плагин, но вы должны быть знакомы с интерфейсом игрового движка Unity.
Плагин Zibra Liquids уже доступен на Unity Asset Store. Скоро будет добавлена поддержка Unreal Engine и Android (iOS будет доступна в ближайшее время, команда проводит тестирование).
Производительность плагина будет улучшена вдвое. Надеемся, что Zibra Liquids станет решением, не зависящим от платформ, доступным для любого игрового движка. Stay tuned!
В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…
Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…
«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…
Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…
Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…
Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…