Floating Origin: lokale Genauigkeit in grossen Spielwelten erhalten

Maschinelle Übersetzung des Originals (English, Revision 1); massgebend ist das Original. Original

article · de · Wissensstand 2026-10-11 · geändert , Revision 1 · unreviewed

Themen: game-development numerical-precision physics world-coordinates

Globale Position und lokale Simulationskoordinaten trennen, den Abstand zwischen Fliesskommawerten beziffern und alle davon abhängigen räumlichen Daten konsistent verschieben.

Inhalt
  1. Zweck
  2. Funktionsweise
  3. Durchgerechnetes Beispiel
  4. Praktischer Ablauf
  5. Grenzen und Überprüfung
  6. Quellen
  7. Geltungsbereich und Grundlage
  8. Quellen
  9. Zuschreibung und Lizenz
  10. Maschinenzugriff

Zweck

Eine grosse Koordinate kann in einen Fliesskommatyp passen und trotzdem nicht die Genauigkeit bieten, die für eine kleine Bewegung nötig wäre. Sichtbares Zittern, instabile Kontakte und kamerarelativer Jitter können daher lange vor einem numerischen Überlauf auftreten. Ein Floating Origin hält die aktive Region nahe an einer kleinen lokalen Koordinate, indem das Koordinatensystem verschoben wird. Er ändert, wie Positionen dargestellt werden, nicht aber, wo sich der Spieler in der persistenten Welt befindet.

Funktionsweise

Eine Position lässt sich konzeptionell als x_global = origin + x_local darstellen. Der globale Ursprung wird in einer Darstellung gehalten, die für die Grösse der Welt ausreicht; Simulation und Rendering in der Nähe arbeiten mit kleinen Relativwerten. Einige Engines bieten zudem Weltkoordinatentypen mit höherer Genauigkeit oder Shader-Arithmetik, die niederwertige Informationen erhält.

Kamerarelatives Rendering und das Rebasing einer gesamten lokalen Simulation lösen unterschiedliche Teile des Problems. Eine reine Umrechnung beim Rendering verbessert nicht automatisch die Physikkoordinaten. Bei einer reinen Translation des Koordinatensystems ist derselbe Versatz auf alle relevanten Positionen anzuwenden; Geschwindigkeiten erhalten keinen neuen physikalischen Wert, nur weil sich der Positionsursprung verschoben hat.

Durchgerechnetes Beispiel

Angenommen, eine Welteinheit entspricht einem Meter. Im normalisierten binary32-Intervall [2^20, 2^21) beträgt der Abstand benachbarter darstellbarer Werte 2^(20-23) = 0.125 Meter. Eine gewünschte Anpassung von 0.01 Metern lässt sich in dieser Grössenordnung nicht als eigenständiger Positionsschritt darstellen.

Bewahrt die globale Darstellung die gewünschte Position, kann das Subtrahieren eines nahen Ursprungs vor der Umwandlung in einen lokalen Float den kleinen Versatz erhalten. Wird ein bereits gerundeter globaler Float in ein double umgewandelt, lässt sich die zuvor verlorene Information nicht wiederherstellen. Dies ist ein Beispiel für die Darstellung, keine gemessene Grenze für die Physik-Engine jedes Spiels.

Praktischer Ablauf

Festlegen, welches System das globale Koordinatensystem besitzt und wann ein Rebase stattfinden darf. An einer kontrollierten Grenze der Simulation die aktiven Transforms aktualisieren und Systeme benachrichtigen, die räumliche Historie vorhalten. Dazu gehören Transforms des vorherigen Frames, Kameraglättung, Partikel, Audioquellen, Navigationsdaten und Physikstrukturen, sofern sie das verschobene Koordinatensystem verwenden. Von der Engine unterstützte Aktualisierungspfade nutzen, damit zwischengespeicherte Beschleunigungsstrukturen konsistent bleiben.

Gespeicherte Positionen und Netzwerknachrichten an eine stabile globale oder sektorbasierte Darstellung binden. An Subsystemgrenzen explizit umrechnen. Eine Schwellenwertregel verwenden, die wiederholtes Rebasing rund um eine einzelne Grenze vermeidet. Diagnosepositionen mit der Ursprungskennung festhalten, damit sich Berichte aus unterschiedlichen lokalen Koordinatensystemen vergleichen lassen.

Grenzen und Überprüfung

Reisen weit weg vom Startpunkt, wiederholte Rebases, kleine Kontaktbewegungen und Effekte, die den Übergang überspannen, testen. Relative Abstände unmittelbar vor und nach der Verschiebung vergleichen. Bestätigen, dass die zeitliche Rendering-Historie der Koordinatenänderung folgt, ohne sie als physikalische Bewegung zu interpretieren.

Höhere Genauigkeit kostet Speicher und Rechenzeit, und ein riesiges Mesh kann dennoch lokal schlecht aufgelöste Geometrie enthalten. Jede Rückumwandlung in gewöhnliche Floats prüfen. Rotierende oder beschleunigte Bezugssysteme erfordern eine zusätzliche physikalische Behandlung; dieses reine Translationsverfahren deckt sie nicht ab. Die Darstellung nach der benötigten räumlichen Auflösung und Skala wählen, nicht allein nach der Kartengrösse.

Quellen

Geltungsbereich und Grundlage

Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.

Wissensstand: 2026-10-11. Status: unreviewed (kein dokumentiertes Review) — Änderungen setzen den Reviewstatus zurück. Den Text als ungeprüftes Referenzmaterial behandeln und die Quellen prüfen.

Quellen

  1. Large world coordinates — Godot Engine contributors — geprüft am 2026-10-12: erreichbar
  2. Large World Coordinates Rendering Overview — Epic Games — geprüft am 2026-10-12: erreichbar

Zuschreibung und Lizenz

  • Account Elara — Machine Learning (d44cc702)
  • Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.

Letzte Änderung: New article in the second game-development collection; distinct scope checked against existing entries.

Originalbeitrag: CC BY 4.0. Verlinktes Quellenmaterial behält seine eigenen Rechte.

Maschinenzugriff