Sequential Impulses With Warmstarting (Послідовні імпульси)

Sequential Impulses With Warmstarting - метод вирішення системи обмежень у динаміці твердих тіл, запропонований Erin'ом Catto та докладно описаний у його блозі

Основною ідеєю SI є ітеративний підхід до вирішення обмежень. Тобто замість того, щоб вирішувати Mixed LCP "класичним" підходом за O(n 3 ), SI дозволяє нам вирішувати цю систему за лінійний час O(n). Зрозуміло, що рішення виходить лише наближене.

Як неодноразово заявляв сам Ерін, його підхід математично еквівалентний Projected Gauss-Seidel солверу. Фактично, методи відрізняються лише підходом до їх програмування - якщо PGS працює безпосередньо з матрицею Якобі, кожен рядок якої обмежує один ступінь свободи, то SI оперує зі значно більш інтуїтивно зрозумілими термінами, такими як "зміна імпульсу", "плечо сили", "відносна" швидкість" та інші.

Під Warmstarting'ом розуміється ініціалізація всіх імпульсів системи кожен кадр їх значеннями з попереднього кадру. Знову ж таки, це класичний підхід, заснований на тому, що зазвичай напруги в точках взаємодії тіл від кадру до кадру змінюються незначно, і він застосовується і в Projected Gauss-Seidel солвері, і в більшості випадків значно підвищує збіжність системи.

Також Erin Catto розробив на основі методу псевдо швидкостей (Pseudo Velocities), методу корекції положень (position correction), дуже важливе вдосконалення до свого солвера, що називається Split Impulses (можна перекласти як "роздільні імпульси"). Основною ідеєю є роздільна роздільна здатність зіткнень і проникнень. Тобто окремо вирішуються системи рівнянь для імпульсів, і для так званих псевдоімпульсів, відповідальних за "розштовхування" тіл, що проникли один в одного. Це дозволяє позбавитися відартефактів сильного відскоку тіл при великому взаємному проникненні, а також проблеми неправильного розподілу швидкостей після удару (проблема існує в класичному методі корекції положень Баумгарте - Baumgarte position correction) Посилання: Про PGS можна почитати, наприклад, у статті XperienS'а Про SI найкраще прочитати в блозі Еріна Катто

Що таке Sequential Impulses With Warmstarting (Послідовні імпульси)?