Исправленная по времени интеграция Verlet и слишком большие временные шаги

Я использую временную интеграцию с коррекцией, найденную здесь: http://www.gamedev.net/page/resources/_/technical/math-and-physics/a-simple-time-corrected-verlet-integration-method-r2200

Но когда мой мяч некоторое время стоит на стене (горизонтальная стена, мяч на ней и ускорение направлено вниз), моя игра не может правильно распознать столкновение, и мяч падает. Если я добавлю фиксированный колпачок в deltatime, например, 1/60, то это, похоже, будет работать.

Я думаю, что проблема слишком большие временные шаги. Но исправленная по времени интеграция верлетов сделана, чтобы избежать слишком больших временных шагов, верно? Если да, зачем мне временная шапка?

2 ответа

Решение

Из того, что я понимаю, исправленная по времени интеграция верлетов помогает только тогда, когда у вас есть колебания частоты кадров, но не поможет, если ваша базовая частота кадров слишком мала.

Уравнение, приведенное в статье, нарушено, ошибочно. Когда я получаю это, я получаю это:

x = x + (x – xl)*h/hl + a*h*(h + hl)/2

вместо его, что это:

x = x + (x – xl)*h/hl + a*h^2

и вот пример, использующий его диаграммы:

Другие вопросы по тегам