⛓️ Ланцюг та канат — Позиційна динаміка

Переміщуйте кінці ланцюга, кидайте канат. Симуляція використовує метод позиційної динаміки (PBD) з ітеративним проектуванням обмежень — ту саму техніку, що застосовується в сучасних ігрових движках для тканини та мотузки. Спостерігайте форму ланцюгової лінії (!), стоячі хвилі та ефект батога.

🇬🇧 English

Параметри

Керування

Перетягуйте будь-який вузол

Параметри

Кін. енергія
Пот. енергія
Швидкість кінця
Провис у центрі
PBD:
1. v ← v + g·dt
2. x_pred ← x + v·dt
3. Проект. обмежень:
|x[i+1]-x[i]| = L
4. v ← (x_pred-x)/dt
Ланцюгова лін.: y = a·ch(x/a)

Фізика ланцюга та каната

Позиційна динаміка моделює гнучкі тіла як набір точкових мас, з'єднаних незгинальними обмеженнями відстані. На кожному кроці за часом непроектовані позиції Верле ітераційно повертаються на многовид обмежень. Більше ітерацій → жорсткіший канат. Рівноважна форма підвішеного ланцюга — ланцюгова лінія y = a·cosh(x/a), де a = T0/(ρg). При звільненні одного кінця хвиля біжить донизу і вільний кінець набуває швидкості ≈ √3 від початкової — ефект батога.

Про симуляцію «Ланцюг та канат — Position-Based Dynamics»

Ця симуляція моделює гнучкий ланцюг або канат як послідовність точкових мас, з'єднаних незгинальними обмеженнями відстані, які розв'язуються щокадру методом позиційної динаміки (PBD). Гравітація тягне кожен вільний вузол вниз через інтегрування Верле, а ітеративний розв'язувач обмежень повертає вузли до правильної довжини ланки, відтворюючи реалістичний провис, поширення хвиль та ефекти фокусування енергії. Можна побачити, як підвішений ланцюг набуває класичної форми ланцюгової лінії, як стоячі хвилі біжать канатом і як вільний кінець здатен розвивати швидкість, що значно перевищує швидкість початкового поштовху.

Ланцюги й канати, що підпорядковуються тим самим фізичним законам, зустрічаються всюди — від підвісних мостів і швартовних тросів до тріску батога, що долає звуковий бар'єр; сам метод PBD є алгоритмом, який лежить в основі симуляції мотузок і тканини в таких великих ігрових движках, як Unreal та Unity.

Часті запитання

Що таке позиційна динаміка (PBD) і чому її використовують для канатів?

PBD — це метод симуляції, який накладає геометричні обмеження безпосередньо на позиції частинок, а не через сили. На кожному кроці за часом вузли спочатку вільно рухаються під дією гравітації за інтегруванням Верле, а потім розв'язувач проходить по кожній ланці й підсуває сусідні вузли ближче або далі, доки довжина всіх ланок не зрівняється із заданим значенням. Цей підхід швидкий, стабільний навіть при великих кроках за часом і природно запобігає розтягуванню каната, тому він є найпоширенішою технікою для інтерактивних мотузок і тканини в іграх та кіновізуальних ефектах.

Як взаємодіяти із симуляцією?

Перетягуйте будь-який вузол прямо на канві, щоб потягнути цю точку ланцюга; відпустіть, щоб вона вільно розгойдувалася. Кнопка «Закріп. ліво» кріпить лівий кінець до стелі, «Обидва» — кріпить обидва кінці, а «Відкріп.» скидає весь ланцюг у вільне падіння. Кнопка «Імпульс» підкидає середню точку вгору, запускаючи поперечну хвилю, а «Скинути» повертає конфігурацію за замовчуванням. Повзунки «Ланок N», «Гравітація», «Затухання» та «Ітерації жорсткості» дозволяють у реальному часі досліджувати, як кожен параметр змінює рух.

Що таке форма ланцюгової лінії і коли вона з'являється?

Коли обидва кінці закріплені на однаковій висоті і ланцюг вільно звисає під дією гравітації, він набуває форми ланцюгової лінії, описаної рівнянням y = a · ch(x/a), де a = T0 / (ρ·g) залежить від горизонтального натягу T0, лінійної густини маси ρ та прискорення вільного падіння g. Симуляція малює тонку блакитну пунктирну лінію-орієнтир щоразу, коли обидва кінці закріплені на близькій висоті, щоб можна було перевірити, як змодельований ланцюг наближається до математичного ідеалу зі збільшенням кількості ітерацій жорсткості.

Як працює ефект «батога» (посилення швидкості кінця)?

Коли хвиля біжить донизу підвішеним канатом до вільного кінця, на її шляху залишається дедалі менше ланок, що несуть енергію. Оскільки енергія зберігається, а рухома маса зменшується, швидкість кінчика має зростати, щоб компенсувати це, — той самий принцип, що й у хвилі, яка сходиться в звужуваному середовищі. Для ідеального однорідного каната швидкість вільного кінця може сягати приблизно √3 від швидкості початкового поштовху, а в реальному батозі цього достатньо, щоб перевищити швидкість звуку (~343 м/с) і створити різкий звуковий тріск. У симуляції можна побачити, як показник «Швидкість кінця» різко зростає, коли ви подаєте «Імпульс» із вільним одним кінцем.

Де в реальному світі застосовується фізика гнучких канатів?

Вантові й підвісні мости спираються на форми ланцюгової та параболічної лінії тросів для ефективного розподілу навантаження; яскравими прикладами є міст Форт-Брідж і Золоті Ворота. Швартовні троси нафтових платформ під водою повинні витримувати динамічне хвильове навантаження, яке моделюють ланцюговими рівняннями. Ліфтові троси, кранові канати й тросові дороги також вимагають від інженерів прогнозувати провис, натяг і резонансні частоти. У робототехніці маніпулятори з тросовим приводом використовують моделі фізики каната для керування позицією через натяг. Навіть рух ниток ДНК у розчині іноді наближено моделюють ланцюгами з кульок і пружин, тісно пов'язаними з PBD.

Чи важчий ланцюг звисає інакше, ніж легший?

Форма ідеально гнучкого, рівномірно щільного ланцюга, що звисає під власною вагою, завжди є ланцюговою лінією незалежно від його лінійної густини маси — густина скорочується в рівнянні форми. Що дійсно змінюється залежно від густини, так це натяг, потрібний для підтримання цієї форми: важчий ланцюг потребує пропорційно більшого натягу в точках кріплення. У симуляції повзунок «Гравітація» фактично масштабує вагу на вузол, тож збільшення гравітації посилює провис (оскільки горизонтальний натяг, що забезпечується розв'язувачем обмежень, скінченний), наочно ілюструючи цей зв'язок натягу й форми.

Хто першим математично описав ланцюгову лінію?

Галілей помилково вважав, що підвішений ланцюг утворює параболу (1638 рік). Правильне рівняння ланцюгової лінії незалежно вивели у 1691 році Готфрід Вільгельм Лейбніц, Християн Гюйгенс та Йоганн Бернуллі, відповідаючи на виклик, поставлений Якобом Бернуллі. Назву «ланцюгова лінія» (від латинського catena — ланцюг) увів Християн Гюйгенс у листі того ж року. Доведення Йоганна Бернуллі спиралося на щойно винайдений математичний аналіз, ставши однією з перших великих фізичних задач, розв'язаних за допомогою цього інструменту. Пізніше Джеймс Клерк Максвелл використав ланцюгову лінію як приклад у своєму підручнику з механіки 1873 року.

Які ще симуляції тісно пов'язані з фізикою ланцюга та каната?

Симуляція тканини — це двовимірне розширення PBD для каната: сітка вузлів, з'єднаних обмеженнями розтягування, зсуву й вигину. Фізика м'яких тіл (желе, плоть) використовує об'ємні обмеження на тому ж каркасі точкових мас. Рідинний метод SPH (згладжена гідродинаміка частинок) замінює обмеження відстані силами тиску, але зберігає ту саму філософію частинок. Волосся й хутро в кінематографічному рендерингу використовують подібні ланцюгові моделі з доданою жорсткістю на кручення та вигин. Симуляція тканини на mysimulator.uk використовує той самий розв'язувач PBD, розширений до двовимірної сітки, тож техніки переносяться напряму.

Як фізика каната застосовується в сучасних ігрових движках і кіновізуальних ефектах?

Система фізики Chaos в Unreal Engine та фізика DOTS в Unity обидві реалізують PBD для компонентів каната, кабелю й тканини, забезпечуючи взаємодію в реальному часі. NVIDIA PhysX, що використовується в багатьох комерційних іграх, теж застосовує подібний до PBD розширений розв'язувач позиційної динаміки (XPBD), який дає незалежне від обмежень керування жорсткістю. У кіновізуальних ефектах Houdini Vellum та Autodesk Maya nCloth використовують розв'язувачі на основі PBD для канатів, волосся й тканини, оскільки метод залишається стабільним навіть при дуже великій кількості обмежень, на відміну від силових ODE-інтеграторів, які можуть чисельно «вибухати» при великих кроках за часом.

Що таке розширена позиційна динаміка (XPBD) і як вона покращує звичайну PBD?

Звичайна PBD має відому обмеженість: видима жорсткість обмеження залежить від кількості ітерацій розв'язувача та розміру кроку за часом, що ускладнює налаштування фізичних параметрів незалежно від числових налаштувань. Розширена PBD (XPBD), запропонована Майлзом Макліном і Маттіасом Мюллером у 2016 році, додає параметр піддатливості до кожного обмеження, тож жорсткість відокремлюється від кількості ітерацій і dt. Це дозволяє художникам та інженерам задавати фізично осмислені значення жорсткості (у Н/м) напряму, а також уможливлює симуляцію еластичних канатів, які розтягуються на контрольовану величину, а не є ідеально незгинальними. Серед актуальних напрямів досліджень — паралельна на GPU XPBD для мільйонів сегментів каната, поєднання розв'язувачів каната з розв'язувачами рідини й твердого тіла, а також параметри піддатливості, здобуті з даних реальних матеріальних випробувань.