Как смоделировать прочное соединение двух твердых тел?

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

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

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

У меня есть Physics for Game Developers, но это не касается суставов. Я искал в сети, но все, что мне удалось найти, это статьи об использовании суставов в различных готовых физических движках. Может кто-нибудь посоветует, как самому смоделировать такой подшипник / шарнир?


person Joe Strout    schedule 14.08.2014    source источник
comment
Мне пришло в голову, что из-за особых ограничений этой игры я, вероятно, смогу обойтись простым подходом: применить сохранение импульса к каждой части, а затем найти средневзвешенную ось вращения всех частей. Затем просто установите оси всех частей на это, повторно соедините все части, которые были разделены, и установите центр масс всей системы в исходное положение. ... Но другие предложения по-прежнему очень ценятся!   -  person Joe Strout    schedule 15.08.2014


Ответы (1)


Один из стандартных приемов для упрощения вычислений - смоделировать соединение как довольно жесткую пружину с длиной покоя = длине соединения. Это позволяет асинхронно распространять моменты, сохраняя при этом построение сцены и физический движок отдельно.

Стандартная ссылка: http://www.gamedev.net/page/resources/_/technical/math-and-physics/a-verlet-based-approach-for-2d-game-physics-r2714

особенно вторая половина, где обсуждаются столкновения протяженных объектов. Идея применима также к силам, отличным от столкновений, и схем интеграции, отличных от Верле.

person Lutz Lehmann    schedule 15.08.2014