ru:https://highload.today/blogs/product-of-zibra-ai/ ua:https://highload.today/uk/blogs/product-of-zibra-ai-ukr/
logo
Інструменти      30/11/2021

Ми за вісім місяців навчилися створювати реалістичну воду для комп’ютерних ігор: тепер плагіном можуть користуватися всі

Александр Пучка BLOG

3D Lead в Zibra.ai

‘Ми у Zibra.AI хотіли створити продукти, які здатні прискорити виробництво відеоігр. ML-команда мала ідею застосувати підхід, що об’єднає штучний інтелект та 3D.

Провівши низку досліджень та експериментів, за вісім місяців нам вдалося зарелізити свій перший продукт.

Суть технології

У чому суть технології? Щоб представити об’єкти у 3D часто використовується SDF (Signed Distance Field). SDF забезпечує менш витратне трасування променів, дає можливість економити на текстурах низької роздільної здатності та забезпечує більш швидкий, плавний геймплей. Але не будемо забувати про те, що всі сучасні методи візуалізації обмежені в пам’яті. А оскільки SDF представляється як 3D-текстура, вона споживає чимало пам’яті.

Технолгія Zibra Liquids

Технолгія Zibra Liquids

Наприклад, об’єкт SDF з роздільною здатністю 512 x 512 x 512 споживає 0,5 GB VRAM оперативна пам'ять для тимчасового зберігання зображення. Саме тому ми пішли у своїх пошуках далі, створивши технологію, де 3D-об’єкт архівується за допомогою нейронного представлення SDF. Завдяки цьому об’єкт стає значно компактнішим. Такий підхід дозволяє заощадити величезний обсяг пам’яті, зберігаючи високу якість. Отже, той самий 3D-об’єкт із вищезгаданого прикладу займатиме всього кілька сотень кілобайтів. Увесь процес відбувається за мілісекунди, оскільки власний метод не вимагає тренування нових мереж для репрезентації невидимого об’єкта.

Цю технологію можна застосувати до симуляції фізики ігор, які використовують SDF для моделювання частинок, що стало ідеєю для нашого першого продукту.

Іншими словами, ми реалізували ідею створення доступних інструментів на основі основної ML-технології. Інструменти призначені для:

  • спрощення процесу розробки гри;
  • вирішення проблеми поганого зовнішнього вигляду візуальних ефектів (та відсутності їх інтерактивності в іграх);
  • зменшення обчислювальної вартості.

Це дозволить розробникам ігор і VFX-художникам зосередитися на креативності, витрачаючи менше зусиль на етапі оптимізації гри.

Онлайн курс з промт інжинірингу та ефективної роботи з ШІ.
Курс-інтенсив для отримання навичок роботи з ChatGPT та іншими інструментами ШІ для професійних та особистих задач, котрі допоможуть як новачку, так і професіоналу.
Записатися на курс

Серед труднощів, які доводиться долати, є моделювання взаємодії частинок з 3D-об’єктами складної форми. Зазвичай вони мусять розділити об’єкт складної форми на кілька простих об’єктів, а потім налаштувати імітацію взаємодії з кожним із них окремо. Цей процес займає чимало часу і зусиль. Загалом, практично усі рішення, представлені на ринку, не забезпечують інтерактивності або потребують потужних ПК.

Отже, ми вирішили надати можливість напівавтоматизувати процес розробки ігор. Розробники зможуть покращити графіку та фізику в грі з нижчими витратами на обчислення на всіх пристроях.

Zibra Liquids — перший на ринку плагін моделювання рідини на основі ML, доступний для комерційного використання.

Це ML-технологія, яка буде основою багатьох інструментів, що зараз перебувають у розробці. Проте вже зараз існує плагін Zibra Liquids, доступний на Unity Asset Store. Це кросплатформний плагін фізичного моделювання рідини в реальному часі для розробників ігор. 

Zibra Liquids: під капотом

Zibra Liquids можна використовувати для моделювання рідини в реальному часі та створення взаємодії рідини з 3D-об’єктами будь-якої форми, навіть складної

Zibra Liquids можна використовувати для моделювання рідини в реальному часі

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.

Він включав добре відомі поширені підходи, такі як:

  • упаковка ресурсів;
  • оптимізація використання регістрів;
  • оптимізація шаблонів доступу до пам’яті;
  • використання непрямих викликів витягування/відправки для зменшення участі CPU.

Але цього було недостатньо, і ми рушили далі. Усі критично важливі частини перформансу Zibra Liquids були оптимізовані:

  1. Оновили алгоритм сортування за допомогою спеціальної реалізації Radix Sort, яка є у шість разів швидшою за оригінальний Bitonic Sort.
  2. Замість того, щоб малювати чотирикутні сітки за допомогою вершинного шейдера для растерізації сфер, було використано атомарну растеризацію.
  3. Останньою оптимізацією був перехід від частинок до сітки алгоритму MPM, де команда також використовує підхід сортування Atomic + Radix. В цілому це дозволяє отримати приблизно шестикратне підвищення продуктивності від частинок до сітки.
  4. Онлайн-курс Frontend-разробник.
    Курс на якому ти напишеш свій чистий код на JavaScript, попрацюєш із різними видами верстки, а також адаптаціями проектів під будь-які екрани. .
    Зарееструватися

Загалом новий солвер є приблизно у 3,5-4 рази швидшим за попередню реалізацію.

Технологія проста у використанні

Технологія проста у використанні

Основні особливості Zibra Liquids

Простота використання

Основна увага зосереджена на тому, щоб забезпечити користувачам плагіна легкий перехід до нових технологій шляхом розробки інтуїтивно зрозумілого та простого інтерфейсу. Щоб налаштувати рідину та побачити бажані результати, варто лише зробити кілька кліків всередині ігрового рушія.

Симуляція в режимі реального часу

Технологія моделює кілька мільйонів частинок на високотехнологічному обладнанні, сотні тисяч частинок на ноутбуках і десятки тисяч частинок на мобільних пристроях в режимі реального часу. Плагін забезпечує реалістичність фізики та візуальну якість ефектів на рівні CG у режимі реального часу та найкращу у своєму класі продуктивність.

Візуальні та фізичні пресети

Технологія здатна здійснювати перехід у режимі реального часу між фізичними та візуальними параметрами, такими як жорсткість, сила поверхневого натягу, гранична сила, металевість, непрозорість, заломлення, відображення та багато інших. Немає потреби у складному налаштуванні — користувачі отримують бажане рішення «з коробки». Команда надає деякі готові комбінації налаштувань цих параметрів — пресети. Тобто користувач може обрати необхідний для себе, або ж налаштувати самостійно.

Контроль гравітації

Тепер під контролем користувачів знаходиться все — навіть гравітація. Ця функція дозволяє реалізовувати нові ігрові механіки, які раніше було неможливо створити. 

Взаємодія зі складними 3D-об’єктами

Основна технологія ZibraAI дозволяє створювати нейронну SDF-репрезентацію для будь-якої геометрії та використовувати її як колайдер для рідкого компонента у сцені. Налаштувати взаємодію частинок з 3D-об’єктами довільної форми можна за декілька кліків.

Силова взаємодія

Ця функція дозволяє використовувати рідини як ігрову механіку. Це впливає на зовнішній вигляд гри, а також важлива для створення реалістичних симуляцій рідин, які можуть передавати силу на об’єкти в сцені, розуміючи їх вагу.

Які переваги можуть отримати розробники ігор від Zibra Liquids

  • Робота з водою стала ще простішою. Відтепер вода може бути інтерактивною, немає потреби вдаватися до запікання.
  • Комбінація Gravity control та Force Interaction дозволяє з легкістю налаштувати переміщення 3D-об’єктів в сцені за допомогою рідин.
  • Плагін призначений для використання на будь-якій платформі, включно з ПК, ігровими консолями (у найближчих релізах) та мобільними пристроями.
  • Безкоштовна версія плагіна доступна для всіх, хто хоче займатися розробкою ігор, маючи обмежений бюджет.
  • Тепер творці можуть передбачати продуктивність гри. Це є вирішальним фактором, оскільки багатьом VFX-художникам доводиться боротися з тим, що їхні ідеї зазнають значного спрощення, оскільки вони не поміщаються в обчислювальний бюджет. Воду, створену за допомогою нашого плагіна, можна переналаштувати для підвищення продуктивності, не виключаючи її з гри.
  • Зовнішній вигляд будь-якої гри покращується завдяки реалістічності симуляції взаємодії рідини з 3D-об’єктами.
  • Обчислення перенесені на GPU. Технологія здатна моделювати кілька мільйонів частинок на високотехнологічному обладнанні, сотні тисяч частинок на ноутбуках і десятки тисяч частинок на мобільних пристроях в режимі реального часу. До ZibraAI всі ці обчислення базувалися на ЦП.
  • Процес розробки гри тепер доступніший і дешевший. Ігри можна розробляти та тестувати на будь-якому обладнанні, а користувачі можуть грати в них навіть на смартфонах.

Вам не потрібні знання машинного навчання, щоб використовувати плагін, але ви повинні бути знайомі з інтерфейсом ігрового рушія Unity.

Які платформи будуть наступними?

Плагін Zibra Liquids уже доступний на Unity Asset Store. Скоро буде додано підтримку Unreal Engine та Android (iOS буде доступна найближчим часом, команда наразі проводить тестування). Продуктивність плагіна буде покращена вдвічі. Згодом Zibra Liquids стане рішенням, що не залежить від платформ, доступним для будь-якого ігрового рушія. Stay tuned!

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Курс Python.
Python дозволяє тобі не тільки розробляти сайти та займатись аналітикою даних, а ще й будувати алгоритми, тестувати програми та навіть створювати штучні інтелекти. Стань різноплановим фахівцем!
Дійзнайтеся більше

Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.

Топ-5 найпопулярніших блогерів лютого

Всего просмотровВсього переглядів
229
#1
Всего просмотровВсього переглядів
229
Всего просмотровВсього переглядів
209
#2
Всего просмотровВсього переглядів
209
QA в CodeGeeks Solutions
Всего просмотровВсього переглядів
156
#3
Всего просмотровВсього переглядів
156
Senior Project Manager at Nemesis
Всего просмотровВсього переглядів
99
#4
Всего просмотровВсього переглядів
99
Software Architect at Devlify
Всего просмотровВсього переглядів
95
#5
Всего просмотровВсього переглядів
95
Рейтинг блогерів

Найбільш обговорювані статті

Топ текстів

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: