Interested Article - Open Dynamics Engine


- 2020-02-15
- 1

Open Dynamics Engine (ODE) — это открытый физический движок , распространяемый бесплатно в виде динамически подключаемой библиотеки. Его основными компонентами являются система динамики абсолютно твёрдого тела и система обнаружения столкновений.
Например, ODE хорошо подходит для симуляции транспортных средств, существ с ногами и движущихся объектов в изменяемом окружении виртуального пространства. ODE имеет очень высокую стабильность интегрирования, поэтому ошибки симуляции не должны выходить из под контроля. С физической точки зрения это значит, что система не должна «взрываться» без причины.
ODE придаёт больше значение скорости и стабильности, чем физической точности. Он быстр, гибок и прост. Движок относится к свободному программному обеспечению и распространяется по двум лицензиям: BSD license и LGPL .
Разработка ODE была начата в 2001 году. Движок успешно используется во многих приложениях и играх, например, в Toribash , BloodRayne 2 , Call of Juarez , серии игр S.T.A.L.K.E.R. , World of Goo .
Возможности и особенности
- Имеет встроенную систему определения столкновений.
- Возможность использовать свою систему определения столкновений.
- Имеет C интерфейс (хотя почти вся ODE написана на C++).
- C++ интерфейс поверх C интерфейса.
- Написано множество юнит тестов, и много пишутся сейчас.
- Специфические оптимизации для различных платформ.
-
Поддерживаемые базовые геометрические формы:
- Луч ( ray )
- Плоскость ( plane )
- Параллелепипед ( box )
- Сфера ( sphere )
- Капсула ( capsule , цилиндр с двумя полусферами на концах)
- Цилиндр ( cylinder , реализован в нестабильном варианте)
- Выпуклый многогранник ( convex )
- Карта высот ( heightmap )
- Треугольная сетка ( triangle mesh , динамические сетки и обнаружение столкновений для двух сеток пока реализованы не до конца)
-
Поддерживаемые типы соединений (
joints
) твёрдых тел
- Контактное соединение (между соприкасающимися телами)
- Шаровое шарнирное соединение ( ball joint , соединяет тела в одной точке, не ограничивая вращения)
- Шарнир ( hinge joint , соединение с одной осью вращения)
- Двухосное соединение ( hinge2 joint , соединение с двумя осями вращения, которое часто используют для реализации автомобильной подвески)
- Кардан ( universal joint )
- Фиксирующее соединение ( fixed joint )
- Угловой мотор ( angular motor , управляет относительным вращением двух тел)
- Телескопическое соединение ( piston joint )
Примечания
Ссылки
- от 27 сентября 2019 на Wayback Machine
- от 2 октября 2008 на Wayback Machine
- от 5 октября 2008 на Wayback Machine
- от 28 февраля 2007 на Wayback Machine
- — библиотека C++ -классов, первоначально основанная на ODE
- от 16 июня 2008 на Wayback Machine на сайте GameDev.ru

- 2020-02-15
- 1