Open Dynamics Engine

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Open Dynamics Engine
ODElogo.png
Тип

Физический движок

Написана на

C++[1]

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

0.12 (11 февраля 2012)

Лицензия

BSD license и LGPL

Сайт

ode.org

Простое транспортное средство преодолевает скат
Столкновение множества объектов

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)

Примечания[править | править исходный текст]

Ссылки[править | править исходный текст]