Подтвердить что ты не робот

Bullet vs Newton Game Dynamics против физических движений ODE

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

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

4b9b3361

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

https://github.com/simbody/simbody

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

Ответ 5

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

Ответ 6

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

  • Box2D (экспериментальный)
  • Пуля
  • Dynamechs (устаревшее)
  • Хавок (экспериментальный)
  • IBDS (экспериментальный)
  • JigLib
  • Meqon (устаревшее)
  • Ньютон
  • ОДА
  • OpenTissue (экспериментальный)
  • PhysX (a.k.a Novodex, Ageia PhysX, nVidia PhysX)
  • Простой физический двигатель (экспериментальный)
  • Токамак
  • TrueAxis

В соответствии с документ за декабрь 2007 года, связанный в этом ответе:

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

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

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