Bullet vs Newton Game Dynamics vs Ode физические движки [закрыто]

Я пытаюсь выбрать физический движок для простого программного приложения. Это было бы имитировать довольно небольшое количество объектов, поэтому производительность не является огромной проблемой. Меня больше волнует точность движения. Я также хотел бы, чтобы движок был кросс-платформенным между windows/linux/mac и мог использоваться с кодом C++. Я смотрел на Bullet, Newton Game Dynamics и ODE, потому что они с открытым исходным кодом. Однако, если Havok/PhysX значительно более точны, я бы подумай и об этом.

все, что я, кажется, нахожу, это мнения о двигателях, есть ли какие-либо тщательные сравнения между вариантами? Или у кого-нибудь есть опыт тестирования различных двигателей. Поскольку то, что я пытаюсь сделать, относительно просто, между ними, вероятно, нет огромной разницы, но я хотел бы услышать, что люди говорят о вариантах? Спасибо!

6 ответов


здесь есть хорошее сравнение ODE и Bullet:

http://blog.wolfire.com/2010/03/Comparing-ODE-and-Bullet

надеюсь, что это может быть полезно при выборе.


хотя он немного устарел, существует всестороннее сравнение (в алфавитном порядке) Bullet, JigLib, Newton, ODE, PhysX и других доступных здесь:

в сравнении рассматриваются интеграторы, модели трения, решатели ограничений, обнаружение столкновений, укладка и вычислительная производительность.


Извините, но вы никогда не найдете реального сравнения с точностью. Я уже три месяца ищу свою магистерскую диссертацию и не нашел ее. Поэтому я начал делать сравнение самостоятельно, но это все еще долгий путь. Я тестирую с 3D-двигателями и даже 2d-двигателями, и на данный момент Бурундук является одним с самой высокой точностью до сих пор. Поэтому, если у вас нет необходимости в 3d, я бы рекомендовал его. Однако, если у вас есть срочная потребность в 3d, и ваша проблема так же проста, как вы описали (не хотите расширять его в будущем? Пуля и ода сделают это. Я бы предпочел Bullet, потому что он намного более современный и все еще активно поддерживается. По крайней мере, есть Ньютон, с которым я сейчас борюсь. Поэтому я не могу дать вам плюсы и минусы кроме того, что это немного больше работы, чтобы ознакомиться с (Важно) плохая документация. Надеюсь, это поможет. С уважением.


Проверьте Simbody, который используется в инженерии. Это особенно хорошо для моделирования сочлененных тел. Он был использован на больше чем 5 лет для того чтобы сымитировать человеческую костно-мышечную динамику. Это также один из физических двигателей, используемых в Gazebo, среде моделирования роботов.

https://github.com/simbody/simbody

http://nmbl.stanford.edu/publications/pdf/Sherm2011.pdf


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


слой абстракции физики поддерживает большое количество физических движков через унифицированный API, что позволяет легко сравнивать движки для вашей ситуации. PAL предоставляет уникальный интерфейс для этих физика:

  1. Box2D в (экспериментальный)
  2. пуля
  3. Dynamechs(устарело)
  4. Havok (экспериментальный)
  5. IBDS (экспериментально)
  6. JigLib
  7. Meqon(устарело)
  8. Ньютон
  9. ОДА
  10. OpenTissue (экспериментальный)
  11. PhysX (a.к. A Novodex, Ageia PhysX, nVidia PhysX)
  12. простой физический движок (экспериментальный)
  13. Токамак
  14. TrueAxis

по словам декабрь 2007 года бумага связаны ответ:

открытого исходного кода двигатели пулевой двигатель обеспечил наилучшие результаты в целом, превосходит даже некоторые коммерческие двигатели. Токамак наиболее вычислительно эффективный, что делает его хорошим выбором для разработка игр, однако TrueAxis и Newton хорошо зарекомендовали себя на низком уровне частота обновления. Для имитационных систем наиболее важным свойством моделирование должно быть определено для того, чтобы выбрать лучшее двигатель.

вот демонстрация сентября 2007 года тем же автор:

https://www.youtube.com/watch?v=IhOKGBd-7iw