Почти каждая игра имеет тенденцию использовать некоторые из игрового цикла. Gafferongames имеет большую статью о том, как сделать хорошо разработанный цикл игры: http://gafferongames.com/game-physics/fix-your-timestep/Численная интеграция, Runge-Kutta, RK4 в игровом дизайне
В своем коде, он использует integrate(state, t, deltaTime);
, где я считаю state
содержит положение, скорость и ускорение объекта. Он использует RK4 для интеграции с t
на t+deltaTime
.
Мой вопрос, почему использовать численный метод интегрирования как RK4, когда вы можете использовать кинематические уравнения (here), чтобы найти точное значение?
Эти уравнения работают, когда ускорение является постоянным. Кажется редким, что у вас будет изменение ускорения в пределах a timestep. Кажется, что RK4 - это более низкая производительность, более низкая точность и более сложное решение.
Редактировать: Я думаю, вы могли бы добавить значение «рывка» к объектам и по-прежнему находить точные выражения для ускорения, скорости и перемещения, если вы действительно этого хотели.
Редактировать 2: Ну, я не читал его статью «Основы интеграции» слишком тщательно. Я думаю, он моделирует демпфер и пружину, которые вызывают неустойчивое ускорение в течение времени.