Как сделать лерп в ксс
lerp и его особенности
По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет «придумано» на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция.
1) Ваш интернет канал оставляет желать лучшего.
Предположим, что вы счастливый обладатель модема или в вашем городе широкополосный интернет пока по карману только избранным или ваш сосед по общежитию по вечерам заливает на торрент пачку свежих немецких фильмов. Это значит, что вы можете себе позволить исключительно скромные сетевые настройки. Скорее всего те, что стоят по умолчанию, а быть может ваши дела еще хуже. При cl_updaterate 20, даже если все пакеты благополучно приходят от сервера к клиенту, вы видите 20 кадров в секунду (не имеет значения, какой у вас компьютер). Человеческий глаз воспринимает эту картинку как дерганую. Если же, не дай бог, потери (choke) есть, то играть вы просто не сможете, так как будете видеть слайдшоу.
2) Настройки серверов непозволяют клиентской части выставлять необходимые значения некоторых переменных.
Главная проблема тут безусловно cl_interp_ratio, на данный момент ни один европейский серверный конфиг не позволяет играть с этой переменной равной нулю. На данный момент я не знаю ни одного паблика с такими настройками. Только несколько КВ-серверов позволяют отключать интерполяцию. Сейчас добавление sv_client_min_interp_ratio 0 (эта команда отвечает за минимальное значение cl_inerp_ratio, которое может иметь клиент находясь на этом сервере) в евроконфиге скорее всего вопрос времени, и я пологаю, ждать осталось не долго. Но факт остается фактом: значение этой серверной переменной по умолчанию равно 1, а это значит, что клиент не может сделать lerp меньше, чем 10 мс.
1) Напишите в консоли cl_updaterate и запомните значение этой переменной
2) Напишите в консоли cl_interp_ratio 1
3) Разделите 1 на значение cl_updaterate
4) Напишите в консоли cl_interp и присвойте ему то что получили в пункте 3
Например:
Я играю с cl_updaterate 66, это значит что в 3 пункте я получу 0.0152, следовательно мне нужно написать cl_interp 0.0152. Это даст мне lerp = 15. Что уже довольно неплохо. Так как интерполяция таких временных промежутков не слишком сильно добавляет неточности вашим действиям.
Если вы пишите значение cl_interp меньшее, чем cl_interp_ratio/cl_updaterate, то на net_graph lerp будет отображаться оранжевым цветом. Если же lerp окрашен в желтый, то значит значение lerp больше промежутка времени между отсылаемыми пакетами на этом сервере. В обоих случаях lerp (а значит cl_interp) нужно увеличивать пока тот не станет белым. Если вы будете пытаться играть с НЕ БЕЛЫМ lerp, то вы обрекаете часть своих выстрелов застревать в промежутке клиент-сервер.
Вывод:
Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом.
Чтобы не париться с математикой, можно забиндить клавиши так:
bind «INS» «lerpa+»
bind «DEL» «lerpa-«
bind «HOME» «lerpb+»
bind «END» «lerpb-«
bind «PGUP» «lerpc+»
bind «PGDN» «lerpc-«
Форум проекта sourceplay.ru
Часовой пояс: UTC+03:00
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. | Страница 1 из 1 | [ 14 сообщений ] |
|
Автор | Сообщение | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
qwist | |||||||||||
Зарегистрирован: 06:33 Суббота, 24 Сентябрь 2011 |
| ||||||||||
Зарегистрирован: 06:25 Суббота, 20 Март 2010 |
| ||||||||||
Зарегистрирован: 06:25 Суббота, 20 Март 2010 | |||||||||||
Зарегистрирован: 12:56 Понедельник, 22 Сентябрь 2008 | |||||||||||
Зарегистрирован: 05:30 Четверг, 21 Январь 2010 | |||||||||||
Зарегистрирован: 11:54 Пятница, 20 Ноябрь 2009 | |||||||||||
Зарегистрирован: 19:45 Понедельник, 03 Январь 2011 | |||||||||||
Зарегистрирован: 12:56 Понедельник, 22 Сентябрь 2008 | |||||||||||
Зарегистрирован: 05:30 Четверг, 21 Январь 2010 |
Часовой пояс: UTC+03:00 Кто сейчас на конференцииСейчас этот форум просматривают: нет зарегистрированных пользователей Как сделать лерп в кссу всех после обновления в нижнем правом углу появилась переменная lerp=xxx. По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет «придумано» на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция. После теории перейдем к практике. С самого начала кажется, что в идеале lerp должен быть равен 0, ведь при таком значении lerp нет интерполяции и клиент видит то же, что видит сервер. Вы НЕ можете себе позволить lerp=0 по двум причинам. 1) Ваш интернет канал оставляет желать лучшего. 2) Настройки серверов непозволяют клиентской части выставлять необходимые значения некоторых переменных. 1) Напишите в консоли cl_updaterate и запомните значение этой переменной Например: Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом. Как сделать лерп в кссНебольшой ликбез Настройки клиентской части по умолчанию: cl_updaterate 20; cl_interp_ratio 2; cl_interp 0.1. Как это работает По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет «придумано» на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция. После теории перейдем к практике. С самого начала кажется, что в идеале lerp должен быть равен 0, ведь при таком значении lerp нет интерполяции и клиент видит то же, что видит сервер. Вы НЕ можете себе позволить lerp = 0 по двум причинам. 1) Ваш интернет канал оставляет желать лучшего. 2) Настройки серверов не позволяют клиентской части выставлять необходимые значения некоторых переменных. 1) Напишите в консоли cl_updaterate и запомните значение этой переменной Например: Вывод Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом. Ещё совет Чтобы не париться с математикой, можно забиндить клавиши так: bind «INS» «lerpa+»
|