Демпфирование — это механизм снижения скорости движения объектов в
физическом мире, который предотвращает бесконечные колебания и
обеспечивает реалистичное поведение тел при столкновениях и вращениях. В
библиотеке Oimo.js демпфирование задаётся двумя
основными параметрами: linearDamping и
angularDamping. Они регулируют затухание линейной и угловой
скорости соответственно.
linearDamping
— демпфирование линейного движенияНазначение: linearDamping уменьшает
скорость поступательного движения объекта с течением времени, моделируя
сопротивление среды, трение воздуха или вязкость жидкости.
Тип значения: число от 0 до 1, где:
0 — отсутствует демпфирование, объект движется без
замедления, пока на него действует сила.0.1–0.3 — лёгкое демпфирование, объект постепенно
теряет скорость.0.5–1 — сильное демпфирование, объект быстро
останавливается.Пример настройки:
// Создание телa с демпфированием линейной скорости
const box = world.add({
type: 'box',
size: [1, 1, 1],
pos: [0, 5, 0],
move: true,
linearDamping: 0.2 // мягкое затухание
});
Особенности применения:
linearDamping применяется только к телам с включенной
подвижностью (move: true).angularDamping —
демпфирование вращенияНазначение: angularDamping замедляет
вращение тел, предотвращая бесконечное вращение после столкновений или
воздействия момента силы.
Тип значения: число от 0 до 1, с аналогичной логикой:
0 — вращение не замедляется.0.1–0.3 — лёгкое затухание вращения.0.5–1 — сильное затухание, объект быстро теряет угловую
скорость.Пример настройки:
// Создание тела с демпфированием вращения
const sphere = world.add({
type: 'sphere',
size: [1],
pos: [2, 5, 0],
move: true,
angularDamping: 0.3 // умеренное затухание вращения
});
Особенности применения:
angularDamping может быть полезно для
контролируемых механических объектов, где необходимо ограничить
свободное вращение.linearDamping и angularDampingПример комбинированной настройки:
const cylinder = world.add({
type: 'cylinder',
size: [0.5, 2],
pos: [4, 5, 0],
move: true,
linearDamping: 0.15,
angularDamping: 0.25
});
linearDamping (0.05–0.2) и умеренное
angularDamping (0.1–0.3) — это создаёт естественное
успокоение после падения.move: true)
разумные значения демпфирования помогают избежать численных ошибок и
стабилизируют симуляцию.linearDamping отвечает за замедление поступательного
движения.angularDamping отвечает за замедление вращения.Эти параметры являются важной частью управления физикой в Oimo.js и помогают создавать естественные и стабильные симуляции объектов.