Ce este lerp și caracteristicile sale - portal de jocuri

Client-server - codul de rețea de joc, creând, prin schimbul de pachete între server și client. Aceste informații pachete cu privire la starea actuală a lumii jocului (localizarea obiectelor, etc.).
cl_updaterate - numărul de pachete pe care clientul primește de la serverul de fiecare secundă.
Interpolarea - obținerea valorilor intermediare o valoare prin calcularea mediei extreme. Interpolarea este folosit pentru a netezi imaginea, deoarece pachetele care vin de la serverul este de multe ori nu este suficient pentru a se asigura că imaginea sa uitat buna.

Setarea partea de client în mod implicit: cl_updaterate 20; cl_interp_ratio 2; cl_interp 0.1.

cl_updaterate 20 înseamnă că clientul va primi de la serverul de pachete de 20 de ori pe secundă, diferența dintre pachetele - 50 ms. Pentru a preveni posibila pierdere a pachetelor Lagan interpolare trebuie să aibă loc într-un interval de timp egal cu 2x50 = 100 ms. Pentru a furniza această interpolare trebuie să fie setat la cl_interp 0.1. Factorul doi este că ne dorim să interpola cele două zone dintre cele trei pachete care vin de la același server, „._._.“. Dacă vrem să interpola un singur domeniu „._.“ Trebuie să se schimbe opțiunea corespunzătoare. Acest parametru este o cl_interp_ratio variabilă. Se poate lua valorile 2, 1, 0, nu e greu de ghicit, în cazul în care această variabilă este zero, atunci clientul va fi nici o interpolare. În general, formula pentru diferența este: lerp = cl_interp. dar nu poate fi mai mică cl_interp_ratio / cl_updaterate. Deci, aici am ajuns la definiția:
lerp - intervalul de timp în care pachetele primite de client, va fi interpolate.

De fapt, valoarea lerp determină proporția pachetelor care provin de la același server, și pachetele generate pe client. Cât este mai mică valoarea lerp. pachetele mai mici vor fi „inventat“ pe partea de client, cu atât mai mult că veți vedea se va potrivi cu ceea ce se întâmplă pe server. Cu cât valoarea lerp. ponderea mai mare a imaginii va juca interpolare.

După ce trecem teoria de a practica. De la bun început, se pare că lerp ideală trebuie să fie 0, deoarece pentru această valoare lerp nici o interpolare, iar clientul vede același lucru ca și văzând server. Nu vă puteți permite lerp = 0, din două motive.

1) Canalul de Internet este slabă.
Să presupunem că sunteți un proprietar fericit al unui modem sau de bandă largă oraș încă la prețuri accesibile numai la alesul, sau vecin în dormitor noaptea toarnă un torent de ambalaj proaspat de filme germane. Acest lucru înseamnă că vă puteți permite doar setările de rețea modeste. Cel mai probabil acestea sunt implicit, și, probabil, afacerea ta este chiar mai rău. Când cl_updaterate 20. Chiar dacă toate pachetele ajung în siguranță de la server la client, veți vedea 20 de cadre pe secundă (nu contează ce computerul dvs.). Ochiul uman percepe această imagine ca de tragere este de ajuns. Dacă, Doamne ferește, pierderea (soc) este, atunci joci pur si simplu nu se poate, pentru că veți vedea un slideshow.

2) Setările serverului nu permit client-side pentru a expune valorile dorite ale anumitor variabile.
Problema principală aici este cu siguranta cl_interp_ratio. în prezent, nici o configurare de server european nu permite să se joace cu variabila egală cu zero. Acum, adăugați sv_client_min_interp_ratio 0 (aceasta echipa este responsabila pentru cl_inerp_ratio valorii minime. Care poate avea un client în timp ce pe server) în evrokonfige, probabil, o chestiune de timp, și am pologayu, așteptați nu este lung. Dar rămâne faptul că valoarea variabilei de server implicită este 1, ceea ce înseamnă că clientul nu poate face lerp mai putin de 10 ms.

1) Scrie o consolă cl_updaterate și memora valoarea acestei variabile
2) Scrie o consolă cl_interp_ratio 1
3) Divide prin cl_updaterate valoarea 1
4) Scrieți în consolă cl_interp și atribuiți a ajuns la alineatul 3

De exemplu:
Eu joc cu cl_updaterate 66. Acest lucru înseamnă că un 3-punct voi primi 0,0152, prin urmare, am nevoie pentru a scrie cl_interp 0,0152. Acest lucru mi va da lerp = 15. Ce este deja destul de bine. Deoarece nu interpolarea decalaje de timp sunt prea adaugă inexactitate acțiunile tale.
Dacă scrieți valoarea cl_interp mai mică cl_interp_ratio / cl_updaterate. apoi pe lerp net_graph va fi afișat în portocaliu. Dacă lerp vopsit în galben, înseamnă că perioada de valoarea lerp mai lungă de timp între pachetele trimite la server. În ambele cazuri lerp (atât cl_interp) ar trebui să fie crescută până când acesta devine alb. Dacă încercați să joace un lerp non-alb, atunci doom unele dintre fotografii lor pentru a obține blocat într-un decalaj client-server.

Atinge lerp minim. lăsându-l cu alb pe fiecare server pe care se joacă. Acest lucru vă va permite să reducă la minimum toate problemele legate de conexiunea la Internet.

În cele din urmă, observăm că există un mit care ar lerp ar trebui să fie ping egal. Ping - timpul în care pachetul vine de la server la client și nu are nimic de-a face cu interpolare. Este inutil să încerce să găsească o conexiune în aceste două concepte. În cazul în care orice lerp ping păstrează minim și alb.

Ca să nu se scalde cu matematica, puteți lega cheile după cum urmează:

alias lerpa + "cl_interp incrementvar 0.01 0.09 0.0001" // cl_interp 0.0001
alias lerpa- "cl_interp incrementvar 0.01 0.09 -0.0001" // cl_interp -0.0001
alias lerpb + "cl_interp incrementvar 0.01 0.09 0.001" // cl_interp 0.001
alias lerpb- "cl_interp incrementvar 0.01 0.09 -0.001" // cl_interp -0.001
alias lerpc + "cl_interp incrementvar 0,01 0,09 +0,01" // cl_interp +0,01
alias lerpc- "cl_interp incrementvar 0.01 0.09 -0.01" // cl_interp +0,01

lega "INS" "lerpa +"
bind "DEL" "lerpa-"
bind "HOME" "lerpb +"
bind "END" "lerpb-"
lega "PgUp" "lerpc +"
lega "PgDn" "lerpc-"