Двигатели с открытым исходным кодом

Я использую Open Dynamics Engine (ODE) за последние несколько недель с большим успехом. У этого есть очень простой API, и его моделирование по крайней мере выглядит реалистичным. (Иногда я задаюсь вопросом о моих параметрах совместного столкновения, но что угодно.)

Моя единственная жалоба заключается в том, что это иногда собака. Если я наивно имитирую 1000 взаимодействующих тел, то моя производительность начинает нырять.

Я знаю, что могу тратить время на их пространственные сетки, чтобы уменьшить нагрузку на систему столкновений, но прежде чем я попытаюсь настроить мой код на работу с ODE, мне интересно, есть ли любой другой Open Source/Свободные двигатели физики стоит посмотреть. Это будет для коммерческого приложения, поэтому я ищу что-то более прочное и более сраженное, чем какой-то проект студенческого уик-энда.

Ответы

Ответ 1

Построение быстрого, точного и стабильного решателя чрезвычайно сложно, и люди, подобные Havok, по понятным причинам защищают технологию. Тем не менее, о свободных системах, о которых я знаю, относятся:

  • Newton Game Dynamics. Эта репутация позволила получить очень точный и стабильный решатель за счет производительности. Последние несколько лет он пытался добиться производительности, не жертвуя двумя другими. Это хорошо спроектированный двигатель, и он работает хорошо, но он все еще один из более медленных. Не с открытым исходным кодом.
  • Токамак - прямо противоположное. Это ужасно; даже их демоверсии не работают стабильно. Просто подтяните их укладку в коробку, и вы увидите массивный джиттер. Я никогда не был впечатлен. Это с открытым исходным кодом и очень быстро, однако.
  • Bullet. Это ведет бывший сотрудник Havok, который сейчас работает в Sony (хотя я не могу вспомнить, что это SOE или SCEA). Это новичок в этой сцене, и на самом деле это с открытым исходным кодом. Он получил мощную поддержку Sony, она хорошо перекрещивается с платформой, и она развивается людьми, которые знают, что они делают.
  • TrueAxis - последнее появление на сцене. Я мало знаю об этом, и на самом деле он не получил значительного сообщества. Я склонен быть немного скептичным здесь; это может быть хорошо написано, но с небольшой помощью сообщества может быть трудно найти, и это, вероятно, не очень проверенный и стабильный движок, по сравнению с другими.

Я сам огромный фанат Bullet, но я слышал некоторые неприятные жалобы на это. Большинство из них, похоже, сосредоточены вокруг плохой документации или случайных проблем на некоторых вторичных платформах, таких как Mac. Это будет мой выбор после "Большого 2", "Хавок" и "PhysX".

Ответ 2

Bullet является удивительным и используется в коммерческих целях (например: в производстве Bolt и нескольких игр PS3/Wii) есть поддержка для многих платформ и даже nVidia CUDA.

Ответ 3

Bullet является бесплатным для коммерческого использования и доступны источники.

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

Ответ 4

Сегодня, когда вы наивно моделируете 1000 взаимодействующих жестких тел на процессоре x86, производительность начинает погружаться без исключения. Если вы хотите получить больше производительности прямо сейчас, то лучше искать физические двигатели, которые переносят рабочую нагрузку на GPU.

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

Если вы все еще хотите повысить производительность, просто используя CPU, вам нужно будет изменить свои требования.

Ответ 6

Nvidias PhysX не с открытым исходным кодом, но свободно доступен для Windows, Linux и PS3.

Цитата из http://en.wikipedia.org/wiki/PhysX:

Nvidia предоставляет как движок, так и SDK бесплатно пользователям и разработчикам Windows и Linux [6]. SDK PlayStation 3 также свободно доступен из-за соглашения о покупке одеяла Sony.