Lerp (линейная интерполяция)
Функция a + (b − a) · t, выбирающая точку на прямой между двумя значениями и, пожалуй, самая часто вызываемая строка кода в игровой разработке.
При t = 0 получаем a, при t = 1 — b, а между ними — равномерное скольжение. Позиции, цвета, громкость, зум камеры — всё, что должно плавно перейти из одного состояния в другое, проходит через lerp, нередко с кривой смягчения (easing), применённой к t. В HLSL функция зовётся lerp, в GLSL — mix, а в C++ std::lerp появилась лишь в 2020 году. Для вращений нужно другое: slerp.
Классическая ловушка — x = lerp(x, target, 0.1) раз в кадр. Выглядит как сглаживание, но привязано к частоте кадров: на 144 Гц камера догоняет цель более чем вдвое быстрее, чем на 60. Правильная форма — t = 1 − exp(−k · dt) с использованием дельты времени. Стоит знать и вариант a·(1−t) + b·t: он при t = 1 точно попадает в b вопреки округлению чисел с плавающей запятой.