Вышел Box2D 3.0

Состоялся релиз Box2D 3.0 — открытого физического движка для работы с двумерными объектами, разрабатываемого на Visual C++ под Windows.

Новая версия использует гибридный спекулятивный и time of impact подход. Он имеет следующие преимущества:

полигональная оболочка больше не требуется;

минимальные паузы в движении;

задачи можно решать параллельно;

поддерживаются пули.

В Box2D 3.0 полностью обновили API. В нём нет классов C++ и минимально использовались макросы. Все внутренние данные скрыты в каталоге src, что делает общедоступные заголовки include меньше и проще для чтения.  

Разработчик перешёл с C++ на C. Он решил уделить основное внимание многопоточности и SIMD. Его вдохновил дизайн потоков bepu, и он выбрал Tracy, опираясь на enkiTS для управления потоками и пулом задач. Также был реализован набор инструкций процессора AVX2.

Версия 3.0 поставляется с Soft Step, который более стабилен и обрабатывает более более длинные цепочки тел, более крупные стеки и так далее. 

Разработчик смог повысить точность алгоритмов, и теперь симуляция хорошо работает в мирах размером до 20 км. 

Он представил консольное приложение для бенчмаркинга, которое выдаёт файлы CSV и показывает, насколько хорошо v3 масштабируется с количеством ядер и различными процессорами, если они совместно используют кэш L2/L3. Тесты показывают, что новая версия более чем в два раза быстрее v2.4.

О том, как создать собственный физический 2D-движок, можно почитать здесь.

Источник: habr.com

0 0 голоса
Рейтинг новости
12125
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии