есть «arducopter mega 2560» от «arduino mega 2560» отличие — наличии 4МБ флеша под логи по i2c + датчики уже там. То что оно не ставится на ардуину — чистая коммерция.
Я вот в поисках версии буллета где было комментов по больше, боюсь солгать, но мне кажется, что про солвер было сказано, что он получен эксперементально перебором. Если глубину проникновения двух сфер легко получить, а глубину проникновения двух кубов уже сложней, тогда вопрос: Что считать глубиной? Напрашивается ответ, нам нужно расстояние на которое следует вытолкнуть тело из коллизии,
и тут мы начинаем думать, а ведь начальная скорость не всегда ноль, и после того как мы приложим импульс, какую скорость мы хотим получить.
И наш алгоритм не должен подменять трение. Трение там отдельно реализовано.
Если рассматривать самый простой вариант башня из 10 кубов, что бы она держалась, какая должна быть скорость кубов, ведь у нас всего 30-60 симуляции в секунду. Если первый куб чуть просел и его пихнули вверх, то он немного вибрирует, если нет дампинга, а куб который лежит на этом кубе уже вибрирует на вибрирующей поверхности, легко может случиться что его часто это резонансная частота. (резонанс зависит только от массы, а она может быть любой)
Что бы я сказала, что я понимаю, то нет. Мне кажется lowerLimit раньше не было и код был короче. Об этом и написала.
c.m_appliedImpulse — тут мы сообщаем с каким импульсом мы обработали коллизию. (Например, громкость удара)
Но получается, что если сила меньше, то ее фактически в тайне увеличивают до какого то миниума.
Зачем? Вопервых в буллет очень, хорошо борются с denormal numbers. Тут ни что не касается в ноль. (trashhold) Если интеловские процы нормально обрабатывают denormal, то многие другие например армы переходят в soft и это прерывание им стоит 100 тактов.
Во вторых? я вообще не понимаю этого кода, что тут отвечает, что нет вибраций и резонанса. Если выстроить 10 кубиков в столбик то, они спокойно стоят и эти все силы и импульсы не начинают резонировать.
Вообще вопрос касается интересной проблемы. Ведь если мы имеем две коробки и алгоритм boxbox, то какой будет перпендикуляр касания, какая коробка первый параметр и какая коробка второй параметр. Часто так получается, что 3 сеукнды одна коробка первый параметр, и все красиво скользит потом, что где то далеко меняется, и это меняет параметры в boxbox местами и все летит в тар-тарары.
Создатель Bullet в начале работал на Havok. Потом он работал в Sony, потом в AMD. AMD как раз хотели добавить Open CL в Bullet, Open CL не использовала, не знаю. Вот видео вероятно как результат той работы. www.youtube.com/watch?v=8jGZv1YYe2c 110 тыс кубиков это очень много для симуляции в реальном времени
Тут описано три шага: Broadphase, Narrowphase, Solver. Я опустила управления памятью. Я не рассмотрела суставы и трение. Быстрый поиск поиск в статических мешах. Что ваш упрек заслуженный и я попробую исправится. AxisSweep3 это 16 битный алгоритм, который забивает большую AABB коробку на 16384 маленьких коробки и все объекты помещает в эти коробки и так и ищет. Чем то напоминает хеш таблицу. Если 16384 коробки мало, то есть bt32BitAxisSweep3 32 битный аналог.
BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h:
2. Практически все о чем мы говорим реализовано в этих строчках, что я привела в статье.
и тут мы начинаем думать, а ведь начальная скорость не всегда ноль, и после того как мы приложим импульс, какую скорость мы хотим получить.
И наш алгоритм не должен подменять трение. Трение там отдельно реализовано.
Если рассматривать самый простой вариант башня из 10 кубов, что бы она держалась, какая должна быть скорость кубов, ведь у нас всего 30-60 симуляции в секунду. Если первый куб чуть просел и его пихнули вверх, то он немного вибрирует, если нет дампинга, а куб который лежит на этом кубе уже вибрирует на вибрирующей поверхности, легко может случиться что его часто это резонансная частота. (резонанс зависит только от массы, а она может быть любой)
Самый похожий код на код дампинга это
c.m_appliedImpulse — тут мы сообщаем с каким импульсом мы обработали коллизию. (Например, громкость удара)
Но получается, что если сила меньше, то ее фактически в тайне увеличивают до какого то миниума.
Зачем? Вопервых в буллет очень, хорошо борются с denormal numbers. Тут ни что не касается в ноль. (trashhold) Если интеловские процы нормально обрабатывают denormal, то многие другие например армы переходят в soft и это прерывание им стоит 100 тактов.
Во вторых? я вообще не понимаю этого кода, что тут отвечает, что нет вибраций и резонанса. Если выстроить 10 кубиков в столбик то, они спокойно стоят и эти все силы и импульсы не начинают резонировать.
Вообще вопрос касается интересной проблемы. Ведь если мы имеем две коробки и алгоритм boxbox, то какой будет перпендикуляр касания, какая коробка первый параметр и какая коробка второй параметр. Часто так получается, что 3 сеукнды одна коробка первый параметр, и все красиво скользит потом, что где то далеко меняется, и это меняет параметры в boxbox местами и все летит в тар-тарары.