Ich habe Probleme zu verstehen, wann extrapoliert und wann interpoliert werden muss. In Gaffer on Games sagte er, er solle interpolieren, aber dann empfahl er in einem anderen Artikel, den Spieler zu extrapolieren. Meine Frage ist also, wann es besser ist zu extrapolieren und wann es besser ist zu interpolieren.
interpolation
extrapolation
J leong
quelle
quelle
Antworten:
Sie interpolieren , wenn Sie wissen , die ‚vor‘ und ‚nach‘ Werten.
Sie extrapolieren, wenn Sie den zukünftigen Wert erraten, basierend auf dem, was Sie bereits wissen.
Die Extrapolation wird hauptsächlich zur Bewegungsvorhersage verwendet. Es ist nicht von dem Spiel benötigt Server , aber die Spiel - Clients müssen sie eine etwas realistischere und aktuelle Vision des Zustandes des Spiels anzuzeigen , um eine glatte visuelle Erfahrung für die Spieler zu geben.
quelle
Die Interpolation wird durchgeführt, wenn Sie sowohl einen Start- als auch einen Endwert haben und abschätzen möchten, was zwischen diesem Start- und Endwert passiert. Ein Beispiel wäre, einen Spieler in einer fließenden Bewegung von Position A nach Position B zu bewegen.
Die Extrapolation erfolgt, wenn Sie einen Startwert haben, aber noch keine Daten für das Ende haben. Sie können dann basierend auf Ihren Daten extrapolieren. Anhand der vorherigen Bewegungen eines Spielers können Sie beispielsweise bestimmen, wo er sich voraussichtlich im nächsten Frame befinden wird.
quelle
Interpolieren Sie immer, wenn Sie können.
Wenn Sie nicht genügend Informationen zum Interpolieren haben, müssen Sie extrapolieren.
Es ist wirklich so einfach, überlege es dir nicht :)
Um ein bisschen mehr zu erklären:
Im Allgemeinen ist die Interpolation besser, da die Interpolation immer richtig ist. Um zu extrapolieren, muss man raten. Dann muss man sich mit dem auseinandersetzen, was passiert, wenn man falsch vermutet, was zu Gummibändern oder Knallen führt, und mit allen möglichen Systemen, um all das zu handhaben und zu verschleiern.
Was passiert, wenn Sie eine Schlägerposition extrapoliert und gezeigt haben, dass sie an die richtige Stelle geht und den Ball abprallt, und anschließend festgestellt haben, dass Sie sich geirrt haben und der Ball nicht abprallt? Es gibt keine gute Möglichkeit, mit diesem Szenario umzugehen.
quelle
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.
quelle
Bei der Interpolation werden bekannte Daten verwendet, um ein Datum innerhalb der Grenzen des Datensatzes zu berechnen (wobei es sich um das Präfix 'inside' handelt). Bei der Extrapolation wird ein Datum außerhalb der Grenzen der vorhandenen Daten berechnet (zusätzlich wird das Präfix 'outside' verwendet). Beide werden zur Synthese zusätzlicher Daten verwendet, wobei die genaue Berechnungsmethode die erwartete Zuverlässigkeit der generierten Daten definiert.
Oder um es in ein sehr einfaches Diagramm zu fassen:
Gegeben die Datenpunkte
A
undC
man kann interpolierenB
und extrapolierenD
.Die Genauigkeit einer Interpolation oder einer Extrapolation hängt ganz davon ab, wie gut Sie jede Variable in der Berechnung berücksichtigen können. Wenn Sie alle Variablen kennen und eine Gleichung haben, die sie alle berücksichtigt, können Sie gleichermaßen leicht interpolieren oder extrapolieren.
Für die Spielmechanik sind die begrenzenden Faktoren die Punkte, an denen die Variablen auf unvorhersehbare Weise beeinflusst werden, entweder vom Spieler oder einem zufälligen oder pseudozufälligen Element.
Beispielsweise kann die Bewegung eines Balls in Breakout (in seiner einfachsten Form) bis zu dem Punkt hochgerechnet werden, an dem er möglicherweise mit dem Paddel des Spielers interagiert. Bis zu diesem Punkt können alle Variablen berücksichtigt werden, sodass Sie die Aktionen des Balls präzise modellieren können. Wenn es den Punkt erreicht, an dem eine Interaktion mit dem Spieler möglich ist, gibt es eine Reihe von möglichen Ergebnissen und es gibt keine Möglichkeit, genau zu modellieren, was davon der Fall sein wird, bis es tatsächlich passiert. Dies ist die Vorhersagegrenze des Spielphysikmodells.
Die Interpolation ist in Spielen einfacher, weil Sie mit bekannten Punkten arbeiten und sich nicht fragen müssen, ob sich die Bedingungen ändern werden. Außerdem haben Sie die volle Kontrolle über die beteiligten Variablen und können beliebige Regeln verwenden, um den Pfad eines Objekts zu bestimmen. Je komplexer die Regeln sind, desto schwieriger kann es sein, zu interpolieren.
Für Objektbewegungen mit einfachen Kollisionen in einem schwerkraftfreien Spielraum (wie Breakout oder Pong) ist der Mechanismus für die Interpolation entlang einer Linie auf dem Pfad eine einfache lineare Interpolation der Punkte. Dieselbe Berechnung kann verwendet werden, um die Linie zu extrapolieren Test für zukünftige Kollisionen. Sobald eine Kollision erkannt wurde, können Sie die Auswirkungen dieser Kollision auf die betroffenen Objekte extrapolieren.
quelle
Die kurze Antwort: Sie interpolieren, wenn Sie einen Wert zwischen zwei bekannten Werten schätzen müssen (dh: in einer Stunde ist der Wert 1, in 3 Stunden sind es drei, um den Wert bei 2 mit dem wahrscheinlichsten Wert 2 zu interpolieren, mit dem gegebenen Wert Werte). Extrapolieren heißt, wenn das Unbekannte außerhalb dessen liegt, was Sie wissen. Wenn also 1 und 2 bekannt sind, können Sie eine fundierte Vermutung zu 3 anstellen.
Interpolieren: Zwischen Extrapolieren: Außerhalb
Die langen Antworten hier sind höchstwahrscheinlich viel genauer und wissenschaftlich korrekt, aber ich hoffe, dass meine einfache Erklärung für einige sinnvoll sein kann
quelle