Компания NVIDIA выпустила открытый движок симуляции физических процессов PhysX 5

После почти четырёх лет с момента прошлой ветки компания NVIDIA опубликовала исходные тексты движка симуляции физических процессов PhysX 5, который стал вторым значительным выпуском после перевода проекта в разряд открытых. Код проекта распространяется под лицензией BSD и поддерживает платформы Linux, macOS, iOS, Windows и Android. Кроме непосредственно движка под лицензией BSD также открыт код и связанного с ним инструментария PhysX SDK.

PhysX является одним из самых популярных физических движков, который задействован для обработки физических взаимодействий в более чем 500 играх и входит в состав многих популярных игровых движков, включая Unreal Engine, Unity3D, AnvilNext, Stingray, Dunia 2 и REDengine. Движок масштабируется для различного оборудования, от смартфонов до мощных рабочих станций с многоядерными CPU и GPU, и позволяет в полной мере использовать возможности GPU для ускорения обработки эффектов. Среди областей применения PhysX можно упомянуть реализацию таких эффектов, как разрушения, взрывы, реалистичные движения персонажей и машин, клубящийся дым, гнущиеся от ветра деревья, льющуюся и обтекающую препятствия воду, развевающуюся и рвущуюся одежду, столкновения и взаимодействия с твёрдыми и мягкими телами.

Компания NVIDIA рассчитывает, что после перевода проекта в разряд открытых, он сможет выйти за рамки инструментов для разработки игр и станет востребован в таких областях, как синтез данных для исследований в области искусственного интеллекта и для тренировки нейронных сетей, cоздание реалистичных окружений для тренировки роботов, cимуляция реальных условий в процессе обкатки автономных транспортных средств и автопилотов. Ожидается также, что адаптация движка для высокопроизводительных кластерных систем позволит добиться нового уровня детализации и точности симуляции физических процессов.

Особенности выпуска PhysX 5:

  • В состав включены библиотеки NVIDIA Flow (моделирование огня, горящих жидкостей и дыма) и NVIDIA Blast (моделирование разрушений конструкций).
  • Реализована поддержка возможностей NVIDIA Flex для создания визуальных эффектов в режиме реального времени на основе симуляции поведения частиц. Среди поддерживаемых возможностей – динамика мягкого тела на основе модели конечных элементов, применение позиционной динамики для жидких, тканевых и надувных объектов, расширенные механизмы определения столкновений.
  • Значительно повышена производительность параллельных вычислений с использованием CPU и GPU.
  • Добавлена возможность определения собственных геометрий, например, для поддержки цилиндрических форм и неявных блочных систем.
  • Добавлена новая система формирования запросов к сцене.
  • Реализована система определения столкновений на основе функции SDF (Signed Distance Field).
  • Добавлен новый API для использования алгоритма определения столкновений GJK (Gilbert-Johnson-Keerthi)
  • Добавлен механизм определения перекрытия мешей.
  • Добавлен Vehicle SDK для симуляции в системах автономного вождения.
  • Реализована система частиц PBD (Position Based Dynamics) для симуляции жидкостей и гранулированных материалов.
  • Добавлена новая архитектура хранения частиц, упрощающая добавление и удаление частиц на лету и не требующая определения максимального числа частиц.
  • В системе симуляции поведения частиц реализована возможность привязки к каждой частице разного материала.
  • Добавлена поддержка динамики мягких тел на основе метода FEM (Finite Element Method) и возможность создания мягкого тела из треугольного меша.






Release. Ссылка here.