IT-словарь › Программирование › Lerp (линейная интерполяция)

Lerp (линейная интерполяция)

Программирование Svenska → Обновлено: 2026-10-26

Функция 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 вопреки округлению чисел с плавающей запятой.

← Назад к словарю