Sie interpolieren, um Zustände zwischen bekannten Werten zu finden, und Sie extrapolieren, um zukünftige Zustände zu finden.
Denken Sie an das Problem in Form von Zustandsvariablen wie Positionen und Geschwindigkeiten. Im besten Fall hat jeder Computer, der mit dem Status arbeiten muss, Zugriff auf die Statusdaten für die Zeit, an der er arbeiten möchte. Beispiel: Ein Kollisionsalgorithmus, mit dem ermittelt wird, ob der Lasergewehrschuss X den Kopf von Spieler A beeinträchtigt, ist der beste Fall, wenn der Algorithmus die genaue Position jedes Objekts zum Zeitpunkt des Laserabschusses kennt.
In der realen Welt sind wir nicht immer so glücklich. Manchmal sind die Wahrheitsinformationen, die wir erhalten, spärlicher. Wenn Spieler A beispielsweise ein Remote-Spieler auf einem anderen Computer ist, wissen Sie möglicherweise nicht genau, wohin sie gehen, wenn Sie den Laser abfeuern und den Schuss berechnen müssen. In diesem Fall müssen Sie einen Schätzer für die Position von A erstellen, in der Regel mit Interpolation oder Extrapolation.
Der Unterschied zwischen den beiden besteht darin, ob Sie Daten haben, die auf beiden Seiten oder nur auf einer Seite begrenzt sind. Angenommen, Spieler A hat bereits seine Wahrheitsposition für t = 0 und t = 1 angekündigt. Spieler B schießt einen Laser bei t = 0,5. In vielen Situationen kann es vorkommen, dass Spieler A seine Position bei t = 1 ansagt, bevor Spieler B den Abzug drückt. Warum? In vielen Spielen ist die Reaktionsfähigkeit der Steuerelemente weniger als augenblicklich. In einer Rennsimulation ist ein Großteil der Position des Spielers durch die Physik eines sich bewegenden Fahrzeugs begrenzt. Sie können eine "zukünftige Position" ankündigen, weil Sie wissen, dass Sie in kurzer Zeit wirklich nicht so viel steuern können. Wenn Sie in Zukunft Informationen haben, können Sie zwischen den beiden Werten interpolieren.
Was, wenn Sie nicht das Glück haben, einen Wert von = 1 zu haben? Was wäre, wenn Spieler A nicht in der Lage wäre, seinen zukünftigen Standort mitzuteilen, und Sie nicht sicher sind, ob Sie nur mit den Informationen von t = 0 treffen oder verpassen? In diesem Fall müssen Sie extrapolieren. Bei der Extrapolation verwenden Sie das, was Sie über die Bewegung wissen, um über die vorhandenen Daten hinauszugehen. Möglicherweise wissen Sie, dass Spieler A eine bestimmte Geschwindigkeit hat. Nehmen Sie also an, dass Sie, wenn Sie diese mit der Zeit multiplizieren, jedes Mal eine Position erhalten können.
Der Unterschied liegt im Verhalten. Für die Interpolation müssen Sie eine obere und eine untere Schranke haben, die Sie nicht immer haben. In fast allen Situationen hat es jedoch weitaus bessere Ergebnisse als die Extrapolation. Extrapolation kann leicht zu unrealistischen Bewegungen führen. Betrachten Sie den Fall eines Spielers, der nach links und rechts ausweicht, um nicht beim Vorrücken angeschossen zu werden. Zu jedem Zeitpunkt verläuft ihre Geschwindigkeit entlang einer Diagonale. Wenn Sie also extrapolieren, läuft der Spieler möglicherweise zur Seite, obwohl dies niemals der Fall ist. Wenn Sie nur interpolieren, neigen die Werte dazu, nicht von den realistischen Werten abzuweichen.
Interpolation und Extrapolation sind zwei Extreme in der Welt der Filterung. Es gibt viele, viele, viele Filter für den Umgang mit solchen Daten, die Eigenschaften zwischen Interpolation und Extrapolation mischen und anpassen. Seien Sie daher nicht überrascht, wenn Sie Algorithmen sehen, die nicht eindeutig interpolieren oder extrapolieren. Diese beiden sind nur die Spitze des Eisbergs.