ESL-Forum | mT
WTF ist eigentlich "Interpolation"?
Interpolation ist in der hohen Mathematik eine bekannte Methode, um zwischen 2 Positionen einen nicht vorhandenen Zwischenweg zu berechnen (Interpolation von lat. 'interpolare' = "verfälschen, entstellen", im übertragenen Sinne auch "zwischen einfügen").
Weil ein Server Datenpakete nicht konstant in einem durchgehenden "Strang" zum Spieler gesendet werden, sondern immer Abschnittsweise, ist die Interpolation auch in Games bzw. CS:S wichtig.
Gegnerpositionen werden bekanntermaßen in Datenpaketen überliefert und kommen visualisiert so beim Spieler an:
x x x x x x x x
0 15 30 45 60 75 90 105
Die Zahlen geben in Millisekunden an, wann das nächste Paket ankam (Nur fiktive Zahlen ums anschaulich zu halten). Denkt man jetzt logisch, so kommt man zu der Erkenntnis, dass jede Position des Gegners auf dem Monitor alle 15ms verändert wird. Da wir keine Interpolation haben, bewegt sich der Gegner also mit "Miniteleports" (= Laggendes Model = cl_interpolate 0) im 15ms Takt vorwärts. Er hat ja keine Zwischenbewegungen!!!
Mit Interpolation sähe das Ganze so aus:
x-----x-----x----x-----x-----x-----x-----x
0 15 30 45 60 75 90 105
Die "-"-Striche geben die hinzuberechnete Zwischenbewegung an. Ihr seht, dass egal wieviele Pakete pro Sekunde ankommen würden, wir immer eine flüssige Gegnerbewegung hätten. Da diese Positionen allerdings hinzuberechnet wurden und nicht wirklich existieren, sind sie 1. ungenau und wenn die Rechnungen aufgrund von Fehlern falsch laufen 2. falsch. Heißt im Klartext: Falsche Interpolation führt zur Anzeige einer falschen Gegnerposition (= "ALTER ICH WAR SO DRAUF, ABER ES GEHT NICHTS REIN!")
Die Interpolation findet auf eurem PC statt und nicht auf dem Server. Darum gibt es viele Faktoren bei euch, die diese Interpolation nochmals verfälscht oder beeinträchtigt.
Danke an mT aus dem ESL-Forum für diese anschauliche Erklärung.
Bei BF2 z.B. ist es wie folgt. (Wohl auch auf BF3 übertragbar)
jb4 |
http://www.tacticalgamer.com
By default, Battlefield 2 appears to have a 100 millisecond buffer for interpolation. The problem with this is that while making things appear smoother, it also means that when firing upon a fast-moving object you may miss where they actually are as you're effectively facing an additional 100ms delay. At least that's the theory, and in general in my experimentation I found slightly improved hit detection results (and no noticeable increase in jerkiness) by using a lower value of 50 or even 30 for this setting. Note however that this variable should not be set too low (and certainly not a value of 0) as it will result in increased warping/jerky movements, and if you generally have a ping higher than 100 you shouldn't lower this setting. For those who do try this, also remember that the improvement from lowering this setting is not dramatic, since we're talking a difference of say 50ms (1/20th of a second). However particularly in situations where your opponent(s) are moving fast and/or erratically your accuracy should be noticeably improved.
Soll heißen, um so weiter der Regler rechts steht, desto stärker wird interpoliert, was aber, da es nur eine Berechnung ist, zu Ungenauigkeiten führen kann. Der Regler sollte also weiter nach links geschoben werden, besonders wenn man einen guten Ping hat, da man dadurch diesen Effekt minimiert. Aber man muss auch darauf achten, das sich gegnerische Models weiterhin flüssig bewegen. Denn wenn man die Interpolation, bei nicht ausreichender Leitungsstärke, zu weit reduziert, scheint es so als würden die Models teleportiert, weil einfach vom System berechnete Zwischenbilder fehlen.