Не понимаю как работает интерполяция в Unity, в частности Lerp и Slerp
Часто приходиться использовать Lerp для плавности, практически во всем. Но мне вообще не понятно описание, которое дано в документации, там говориться, что Lerp возвращает путь от первого аргумента до второго и для этого существует третий аргумент, который интерполирует его позицию от 0 до 1(то есть 0,5 это середина между точками).
Но непонятность в том, что я вообще редко так его использую чаще всего в третий аргумент, вписываю Time.deltaTime умноженный на какое-нибудь число и все работает. И получается так, что данный третий аргумент просто не равен промежутку от 0 до 1, а больше его в несколько раз. И в документации написано другое, и ещё LerpUnclamped есть, который вроде и создан для того чтобы выходит за промежуток от 0 до 1.
Мозг взрывается от не понимания, что же это за аргумент t, время или же процентное соотношение?
Ответы (1 шт):
Lerp - линейная интерполяция, реализует формулу
C = A * (1-t) + B * t
При изменении параметра t от нуля до единицы мы находимся в промежуточных точках отрезка AB. А если этот параметр вне диапазона 0..1 - то мы находимся на прямой AB вне указанного отрезка. В этом случае интерполяция - на совсем правильный термин - то уже экстраполяция. Но ничего страшного в этом нет, если не нарушается логика или физика процесса движения.
Если известно время T равномерного прямолинейного движения от A к B, то в момент t*T толчка находится в соответствующем положении внутри отрезка