Что такое lerp?lerp - промежуток времени в котором пакеты полученные клиентом будут интерполироваться.
Интерполяция - получение промежуточных значений какой-либо величины, путем усреднения крайних. Интерполяция служит для сглаживания картинки, т.к. пакетов приходящих от сервера зачастую не хватает для того чтобы картинка смотрелась плавно.
Получается, чем больше значение параметра lerp, тем больше пакетов пришлет вам сервер. Поэтому, для русских серверов, где потери минимальные, следует ставить минимальное значение lerp. Для других расчет идет следующий:
lerp = 1000/cl_updaterate * cl_interp_ratio (оптимальное значение 2)
cl_interp_ratio - это множитель интерполяции. 2 - интерполируем область между 3мя пакетами. 1 - соответственно 1 пакет между 2х.
Вспомним пройденный ранее материал:
Rate (Рейт) - это максимальный предел байт в секунду который сервер может послать клиенту.
cl_rate - определяет максимальный предел байт в секунду который клиент может послать на сервер. (Вам не нужно беспокоится об этом параметре)
cl_cmdrate - число раз в секунду которое клиент информирует сервер о своих действиях.
cl_updaterate - это сколько раз в секунду сервер говорит клиенту что происходит на карте.
Продолжим. Lerp в CS:S настраивается следующими командами:
cl_interp_ratio (Если не 0, то 2)
cl_interp (Если не 0, то используя формулу выше - lerp*0.01)
updaterate зависит от сервера. Пинг тут не при чем.
Если lerp желтый - идут большие потери пакетов, а значит сервер- УГ.
Переменные сервера:
sv_client_min_interp_ratio
sv_client_max_interp_ratio
Отвечают за минимальные и максимальные значения вашего cl_interp_ratio. Если min = 0, то можно сделать lerp = 0.
Делается это командами:
cl_interp_ratio 0
cl_interp 0БЕЛЫМ.
На сервере с тиком 66 лерп можно выставить силами движка всем клиентам одинаковый (30-31мс):
sv_client_min_interp_ratio 2
sv_client_max_interp_ratio 2
sv_competitive_minspec 1
Апофиг – конфиг - лига
sv_client_min_interp_ratio 1.0
sv_client_max_interp_ratio 1.0
sv_client_predict 1
sv_client_interpolate 1
Как ранее говорили разработчики, значение lerp должно помочь игрокам, правильно определить параметры подключения.
Если все нормально, то он должно быть наприсан белым,
если значечение отображается желтым, то клинет получает меньше обновлений, попросту лагает,
если оранжевым, то это говорит о потерях пакетов из-за плохого соединения или слишком больших размеров пакетов обновлений.
Итак, lerp - промежуток времени в котором пакеты полученные клиентом будут интерполироваться.
Интерполяция - получение промежуточных значений какой-либо величины, путем усреднения крайних.
Интерполяция служит для сглаживания картинки, т.к. пакетов приходящих от сервера зачастую не хватает для того чтобы картинка смотрелась плавно.
По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет "придумано" на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция
То есть дорисовывать на клиенте действия игроков на сервере, данные которые реально были недополучены, как сказано выше "придумывать". Проще говоря, человек выбегает из-за угла, ты его не видишь, по причине потери пакета или большого пинга, то клиент тебе его дорисует. Интерполяция зависит также от пинга. Величина задержки (в миллисекундах) при обсчете положения моделей в игре устанавливается командой cl_interp_ratio, которая грубо рассчитывается как 100/updaterate* и может принимать целые значения (нас интересует самый распространенный диапазон от 1 до 5). Дефолтным считается значение cl_interp_ratio 1 (примерно ссоответствует задержке 10 мс). Однако при игре на сервере с пингом под 100 значение cl_interp 0.01 может привести к тому, что ваша реальная задержка составит 100 мс, а отрисовывание у вас выставлено на 10 мс, в результате лаги могут только усугубиться.
Играя на русских серверах, где потери минимальны - выставляем lerp минимально возможный. Если же вдруг вас занесло поиграть на бурж сервер - расчет идет следующий:
lerp = 1000/cl_updaterate * cl_interp_ratio (оптимальное значение 2).
В CS:S lerp регулируется командами:
cl_interp_ratio (Если не 0, то 2)
cl_interp (Если не 0, то cl_interp_ratio / cl_updaterate)
Значение cl_interp расчитывается: cl_interp = cl_interp_ratio / cl_updaterate
Если грубо, то:
Пинг 5-10 - cl_interp 0.01 cl_interp_ratio 1
Пинг 20-30 - cl_interp 0.02 cl_interp_ratio 2
Пинг 40-50 - cl_interp 0.03 cl_interp_ratio 3
и дальше по аналогии.
P.S. : Вообще это все расчетные значения, всегда нужно подбирать данное значение под конкретный клиент и сервер. Надеюсь многие решат вопросы о lerp'e. Уменьшайте значение lerp, по-умолчанию 100, но чем меньше, тем лучше. Главное, чтобы он стал белым.
Хотя я бы все-таки советовал пользоваться формулой: lerp = 1000/cl_updaterate * cl_interp_ratio (оптимальное значение 2)