Meine OpenGL-Szene enthält Objekte, die in lächerlich großen Entfernungen vom Ursprung positioniert sind. Wenn ich diese Objekte ansehe und eine Kamera um sie schwenke, drehe oder zoome, zittern sie. Das heißt, die Scheitelpunkte, aus denen sich die Objekte zusammensetzen, scheinen um ein imaginäres 3D-Gitter von Punkten zu rasten. Ich habe gelesen, dass dies ein häufiges Problem ist, da viele Informationen mit Gleitkomma-Genauigkeit gespeichert werden können (was OpenGL und so ziemlich alles andere verwendet). Ich verstehe nicht, warum das passiert.
Bei der Suche nach einer Lösung stieß ich auf die sehr einfache Fehlerbehebung mit „schwebendem Ursprung“, und sie scheint zu funktionieren. Ich transformiere einfach alles so, dass sich meine Objekte in den gleichen relativen Positionen befinden, aber was auch immer meine Kamera betrachtet, ist nahe am Ursprung. Ich habe hier eine Erklärung gefunden: http://floatingorigin.com/ , aber ich konnte ihr nicht folgen.
Könnte jemand erklären, warum das Positionieren meiner Szene sehr weit weg (sagen wir 10 Millionen Einheiten) vom Ursprung zu dem von mir beobachteten unregelmäßigen Verhalten führt? Und warum kann das Problem behoben werden, wenn Sie es in die Nähe des Ursprungs verschieben?