Evgeny_Zatolokin
@Evgeny_Zatolokin
2D-3D Художник

Нужно ли результат функции от времени умножать на deltaTime в Unity?

Я разбираюсь с PID контроллером и пытаюсь разбираться с ним и практиковаться в Unity.
Ниже формула. Из-за неё появились вопросы - для чего этот deltaTime? Ладно бы ещё считала бы формула без учёта времени - я бы понял. А так - вообще не понятно
y(t+Δt)=y(t)+u(t)⋅Δt
y(t+Δt): новое значение yy после временного шага \Delta tΔt.
y(t)y(t): текущее значение yy.
u(t) \cdot \Delta tu(t)⋅Δt: управляющее воздействие, умноженное на временной интервал.

Если значение функции в методе Update зависит от значения времени, то почему в некоторых примерах я вижу как результат расчётов дополнительно умножают на deltaTime? Для чего делается эти правка по фреймрейту, если алгоритм и так ориентируется на моменты времени при отрисовки нового кадра?

Фреймрейт слишком высокий - будет браться реальное значение времени Time ( например, 1.011, 1.015 и т.д. ). Если фреймрейти низкий, будет вот так, например - 1.011, 1.100, 1.315 и т.д.

Весь же сыр бор с deltaTime потому что логика каждый кадр просчитывает, не учитывая время, так? Так зачем функции от времени иногда дополнительно умножают
665d7481b148a215991313.png
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
@SWA512
Если у вас конкретная функция от времени, то дельта вам не нужна.

Дельта нужна если нет привязки к прошедшему времени, например получение мгновенной скорости.
Ответ написан
Комментировать
@DrRen7
Тут надо на реальном примере посмотреть
private void Update()
 {
     transform.position = transform.position + transform.forward * 5f * Time.deltaTime;
 }

без дельтата тайма вообще нет времени в функции возьмем за константу что апдейт вызывается 60 раз(у нас 60фпс)
S=S+f(t)
где f(t) = transform.forward * 5f *(1c/60)

Думаю для теста лучше подойдет Rigidbody, потому как там мы работает с силами(они же ускорения) а как знаем из физики скорость это первообразная от ускорения, там соответственно нет deltaTime(ну если мы работаем с силами)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы