Физика в Unreal Engine 5

Отвлечемся от просмотра миллионов статичных треугольников и посмотрим, а что в пятой версии Unreal Engine с физикой и интерактивностью, сделал ли движок хоть какой-то прогресс в этом направлении.

Начал я свое ознакомление с движком с того, что создал новый проект на базе Advanced Locomotion System.

Не касаясь физики, сходу фпс в проекте значительно меньше, чем в UE4. Lumen (и в целом GI или RTX) отключен. По сути, я открыл старый проект и уже получил не тот результат, что ожидал. Уже придется копаться в настройках и смотреть, что там включено.

Ragdoll

Первая проблема - ragdoll. В ALS уже есть настроенный физический ассет для персонажа. При активации рэгдолл работает, но меш не получает заданный импульс. Из-за этого персонаж просто стопорится, как-будто ударяется об стенку.

Если посмотреть на дорожную карту UE, то Chaos Ragdoll в 2020 году находился в бете. Видимо, пока что он так там и остался. Но, возможно, надо что-то переделывать в блюпринтах. Документацию по Chaos Ragdoll я не нашел.

Unreal Engine Public Roadmap
Unreal Engine Public Roadmap

К слову, подобный результат дает PhysX и в UE4, если использовать Substepping с экстремальными значениями параметров max substeps и delta time при низких значениях фпс.

Симуляция физики

Для этого теста я удалил со сцены все лишнее. Создал новый блюпринт на основе модели ящика. Включил для него симуляцию физики. Добавил простейший скрипт для спавна ящиков. Опять таки, один и тот же проект, ue5 выдает на 30 фпс меньше. Но! Освещение в ue5 выглядит лучше (явно что-то переделали в рендере). В сцене 12 динамических поинт лайтов без теней.

Chaos Physics в Unreal Engine 5
PhysX в Unreal Engine 4

Что имеем в итоге. В Unreal Engine 5 после спавна 100 коробок, фпс в сцене падает с 200 до 170. По всей видимости, это действительно связано с наличием большого количества динамических объектов (В настройках Chaos я увеличил количество итераций с 8 до 16, теперь фпс падает с 200 до 100, но физика выглядит немного лучше). В UE4 стартуем с 230 фпс, в конце имеем примерно 220. Просадка значительно меньше, качество - лучше.

В целом, как решает динамику PhysX в UE4 мне нравится больше. В UE5 коробки по динамике больше похожи на картонные. Ощущение, что импульс передается между объектами как-то упрощенно. Наверняка все можно подкрутить, но напоминаю, что и там и там я открываю один и тот же проект.

По всей видимости, Epic Games все-таки отказались от PhysX, теперь движок из коробки использует собственную физику Chaos.

Система разрушений

В четвертой версии движка для разрушения объектов используется Apex Destruction от nvidia.

Включаю апекс в UE5, перезапускаю проект - пока все нормально. Создаю новый Destructible Mesh и... Первый критикал эррор. Странно, если теперь нет PhysX, то почему эти хвосты в виде Apex не убрали - не особо понятно.

А вот так работает Chaos Destruction в UE5 со стоковыми настройками.

Chaos Destruction в Unreal Engine 5

Минус 130 фпс и это всего один объект из 150 чанков. Плюс из того, что я пока вижу, если сделать в любом пакете, например, модель стекла. Далее с помощью cell fracture, houdini или rayfire разрезать модель, то полученный fbx с осколками нельзя загрузить в chaos, как это было в apex. Опять же - минус дополнительный контроль и качество разрушаемых объектов в целом.

Да, это ранний билд, поэтому претензий к Эпикам пока нет. Надеюсь, все приведут в порядок, прикрутят PhysX 3 и 4, ну или хотя бы появится возможность без танцев с бубном включать в проект физический движок от nvidia.

42
23 комментария