В чем разница между приложением импульса и применением силы по отношению к физическому движку?
25
Импульс применяется мгновенно, поэтому он не зависит от временного шага. Вы будете использовать импульс, если хотите что-то зафиксировать в скорости, или если физическое действие происходит слишком быстро (например, пули / рикошет оружия, столкновения, прыжки, мгновенное повышение скорости).
Между тем сила изменяет скорость прямо пропорционально шагу времени. Вы используете его для вещей, которые имеют эффект со временем (например, гравитация, длинные пружины, сопротивление воздуха).
Математически impulse = force * time
; И для справки impulse = mass * velocity_change
, force = mass * acceleration
.
Если вы развернете первое, вы можете проверить это:
impulse = force * time
->impulse = mass * acceleration * time
и с тех пор acceleration * time = velocity_change
->impulse = mass * velocity_change
,
impulse = force * time
импульс также зависит от времени (по крайней мере, если вы используете силы, чтобы получить величину импульса). Действительно, импульс или импульс полезен для применения мгновенных драматических изменений. Наиболее популярным примером являются законы сохранения импульса и энергии: физика . Ohio-state.edu/~gan/teaching/spring99/C10.pdf .Jeff Lake
помощьюGame Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physics
неверно: (перефразируя)Start with a Vector3d (or 2d depending) of forces F, Accumulate all Forces applied in a list, Accumulate All Impulses in a list add both totals to Forces, empty Impulses list, Accel = F / mass, Vel += Accel * deltaTime, Pos = Vel * time.
i = F_response * DTime
. Вы можете пойти любым путем: использоватьi
импульс, чтобы скорректировать скорости после столкновения, или использовать непосредственно силу отклика. Если вы получаете импульс откуда-то еще, вы можете преобразовать его вF_response
и он работает нормально.