Mintegy lerp és jellemzői - hasznos - cikk Directory - klán rgzone

Mintegy lerp és jellemzői

Mint tudod, egy év után a felújítás hálózati kód DoD: S megváltozott. Számos új változók és néhány régi eltávolítjuk. Jelentőségük lesz szó.
egy kis oktatási program

Kliens-szerver - hálózati kódot a játék építve csomag csere a szerver és a kliens. Ezek a csomagok információt a jelenlegi állapotában a játék világ (a helyét a tárgyak, stb)
cl_updaterate - a csomagok számát, hogy az ügyfél megkapja a szerver másodpercenként.
Interpoláció - megszerzése közbenső értékek bármilyen mennyiségben, átlagolásával a szélsőséges. Interpolációt használunk, hogy sima a kép, mert csomagokat érkező szerver gyakran nem elég sima a kép látszott.
Beállítása a kliens oldalon alapértelmezés: cl_updaterate 20; cl_interp_ratio 2; cl_interp 0,1.
Ez hogy működik

cl_updaterate 20 azt jelenti, hogy az ügyfél megkapja a kiszolgáló csomag 20-szor egy második, a különbség a csomagok - 50 ms. Hogy megakadályozzák az esetleges veszteséget Lagan csomag interpoláció kell történnie időintervallumban egyenlő 2 * 50 = 100 ms. Ahhoz, hogy ezt a interpolációt kell állítani cl_interp 0.1. Az a tényező, kettő, hogy azt akarjuk, hogy interpolációt a két terület között három csomag származó ugyanazon a szerveren, „._._.”. Ha azt akarjuk, hogy iterpolirovat egyetlen terület „._.” Meg kell változtatnunk a megfelelő opciót. Ez a paraméter egy változó cl_interp_ratio. Ez eltarthat értéke 2, 1, 0 Nem nehéz kitalálni, ha ez a változó értéke nulla, akkor a kliens nem lesz interpoláció. Általában, a képlet a rés: lerp = cl_interp. de nem lehet kevesebb cl_interp_ratio / cl_updaterate. Tehát itt jön a meghatározása:

lerp - időintervallum, amelyben fogadott csomagok az ügyfél interpoláció lesz.

Tény, lerp érték határozza meg az aránya a csomagokat származó ugyanazon a szerveren, és létrehozott csomagokat a kliens. Minél alacsonyabb az érték lerp, a kisebb csomagok lesznek „kitalált” a kliens oldalon, annál, hogy lát meg fogja találni, hogy mi történik a szerveren. Minél magasabb az érték lerp, annál nagyobb a részesedése a kép fog játszani interpoláció.

Miután át az elmélet a gyakorlatban. Már a kezdetektől fogva úgy tűnik, hogy az ideális lerp legyen 0. mert ezen az értéken lerp interpoláció nélkül, és az ügyfél látja ugyanazt a dolgot, mint látni a szerveren. Nem engedheti meg magának lerp = 0, két okból is.

1) Az internetes csatorna gyenge.
Tegyük fel, hogy olyan szerencséje, hogy saját egy modem vagy a városban, míg a szélessávú megfizethető csak a kedvenc, vagy a szomszéd a kollégiumi éjjel önt egy torrent friss csomag német film. Ez azt jelenti, hogy megengedheti magának, csak szerény hálózati beállításokat. A legvalószínűbb ezek az alapértelmezett, és talán az üzleti még rosszabb. Amikor cl_updaterate 20. Még ha minden a csomagok érkeznek biztonságban a szerver a kliens, látod 20 képkocka másodpercenként (ez nem számít, mi a számítógép). Az emberi szem érzékeli ezt a képet a nyugtalan. Ha Isten ments, veszteség (fojtó) van, akkor játszani csak nem lehet, mert akkor megjelenik a diavetítés.

2) szerver beállításai nepozvolyayut kliens oldalon, hogy ki a kívánt értékeket az egyes változókat.
A fő probléma az, biztosan cl_interp_ratio. jelenleg nincs európai kiszolgáló konfigurációja nem teszi lehetővé, hogy játszani a változó egyenlő nullával. Abban a pillanatban nem tudom semmilyen nyilvános ezekkel a beállításokkal. Csak néhány HF szerverek letilthatja interpoláció. Most adjuk hozzá sv_client_min_interp_ratio 0 (ez a csapat felelős a minimális érték cl_inerp_ratio., Amely egy ügyfél, míg a szerver) evrokonfige valószínűleg idő kérdése, és én pologayu, a várakozás nem sokáig. De az is tény, hogy az érték a szerver változó Az alapértelmezett érték 1, ami azt jelenti, hogy az ügyfél nem tud lerp kevesebb, mint 10 ms.

1) Írja meg cl_updaterate konzol és memorizálni a változó értékeit
2) Írja meg konzol cl_interp_ratio 1
3) Osszuk a értéke 1 cl_updaterate
4) Írja be cl_interp konzol és hozzá került fel a 3. pontban

Például:
Játszom cl_updaterate 66. Ez azt jelenti, hogy a 3. pont, kapok 0,0152. Ezért kell írnom cl_interp 0,0152. Ez ad nekem lerp = 15. Mi már elég jó. Mivel az interpolációs idő távolságok nem túl hozzáteszi pontatlanságot a tevékenységét.
Ha írsz az értéket cl_interp kisebb cl_interp_ratio / cl_updaterate. majd net_graph lerp jelenik meg narancs. Ha lerp festett sárga. átlagértéket lerp hosszabb ideig a csomagokat küldeni a szerverre. Mindkét esetben lerp (így cl_interp) kell növelni, amíg nem válik fehér. Ha megpróbál lejátszani egy nem fehér lerp. elítéled azok egyes lövés elakad egy kliens-szerver különbség.

Elérése minimum lerp. hagyva, fehér minden szerveren, amelyen játszunk. Ez lehetővé teszi, hogy csökkentsék a minimumra az összes kapcsolódó problémák az internetkapcsolatot.

Végül megjegyzem, hogy van egy mítosz, ami lerp egyenlőnek kell lennie a ping. Ping - az időtartam, amely alatt a csomag jön a szerver a kliens és ennek semmi köze az interpoláció. Hiába, hogy megpróbálja megtalálni a kapcsolatot a két fogalmat. Ha bármilyen ping lerp tartani a minimális és fehér.

Nem fürdik a matek, akkor kötelező a kulcsokat az alábbiak szerint:

alias lerpa + "incrementvar cl_interp 0,01 0,09 0,0001" // cl_interp 0,0001
alias lerpa- "incrementvar cl_interp 0,01 0,09 -0,0001" // cl_interp -0,0001
alias lerpb + "incrementvar cl_interp 0,01 0,09 0,001" // cl_interp 0,001
alias lerpb- "incrementvar cl_interp 0,01 0,09 -0,001" // cl_interp -0,001
alias lerpc + "incrementvar cl_interp 0,01 0,09 0,01" // cl_interp 0,01
alias lerpc- "incrementvar cl_interp 0,01 0,09 -0.01" // cl_interp 0,01

kötődnek "INS" "lerpa +"
bind "DEL" "lerpa-"
bind "HOME" "lerpb +"
bind "END" "lerpb-"
bind "PGUP" "lerpc +"
kötődnek "PGDN" "lerpc-"