In gewissem Maße hängt dies davon ab, wie 3D gerendert wird. OpenGL ermittelt beispielsweise automatisch Geometrien außerhalb des Bereichs -1,0, +1,0 im XY-Bildschirmbereich (Z ist komplexer, aber ähnlich). Ausgeschlossene Geometrie erzeugt niemals Fragmente (ungefähr Pixel) und wird daher niemals in tatsächliche Bilder umgewandelt, obwohl sie zum Rendern an das System gesendet wird. In jedem Fall ist es unmöglich, in einen Bereich außerhalb des Renderfensters zu schreiben (wenn alles so funktioniert, wie es sollte).
In einigen Kontexten reicht es aus, sich auf dieses Verhalten als Optimierung zu verlassen. Sie müssen jedoch noch alle Ihre Spieldaten mindestens eine Rendering-Phase (Vertex-Shader) durchlaufen, bevor die Grafikkarte erkennen kann, was sichtbar ist. In so etwas wie Skyrim wäre das unpraktisch. Nicht nur müssen Sie jede Ecke in der Welt durch die Rendering - Pipeline senden, aber Sie müssen laden jede Ecke in System / Videospeicher. Das ist ineffizient, wenn überhaupt möglich.
Viele Spiele verwenden daher CPU-basiertes Culling. Sie werden in der Regel eine Art LOD-System (Level of Detail) implementieren, bei dem die Qualität und Existenz von Vermögenswerten davon abhängt, wie wichtig sie in einem bestimmten Kontext bewertet werden. Ein pyramidenförmiges Netz ist möglicherweise eine akzeptable Annäherung für einen Berg, wenn Sie 80 km davon entfernt sind. Wenn Sie es überhaupt nicht sehen können (wie es von anderen Bergen blockiert wird), müssen Sie es nicht einmal laden. Es gibt eine Reihe komplexerer Methoden, die meines Erachtens nicht direkt für die von dieser Frage geforderte Tiefe relevant sind. Schauen Sie sich jedoch die Tessellation an, um eines der häufigsten Beispiele zu finden.
Der eigentliche Kern davon ist, dass die Visuals nur das Produkt des Spiels sind. Die tatsächlichen Daten haben nichts direkt mit dem zu tun, was Sie die meiste Zeit sehen oder nicht sehen. Die Daten werden in verschiedenen Schritten gefiltert, um überflüssige Informationen zu entfernen, bevor sie an die Stelle gelangen, an der ein Bild auf den Bildschirm geschrieben wird. Abhängig vom Design der Engine kann die Grafik extrem von der eigentlichen Spielelogik abgekoppelt werden, sofern eine 2D- und 3D-Schnittstelle für dasselbe Spiel möglich ist. Es ist sogar möglich, dass viele Spiele-Engines ohne Ausgabe ausgeführt werden. Manchmal wird dies verwendet, um die KI des Spiels zu testen.
Hier kann es allerdings kompliziert werden. In so etwas Einfachem wie einem Mario-Spiel ist es nicht zu unerschwinglich, die Bewegung aller Feinde im Level zu berechnen, auch wenn sie nicht sichtbar sind. In modernen Kontexten, was geschieht außerhalb des Bildschirms ist eine tatsächliche Frage ernsthaft in Erwägung gezogen. Wenn es mehrere ganze Städte von NPCs gibt, wie gehen Sie damit um, wie sie sich verhalten, wenn sie vollständig ausgesondert wurden - wie wenn sich der Spieler in einer anderen Stadt befindet? Möchten Sie wirklich Hunderte von NPC-Entscheidungen auf der ganzen Karte berechnen? Die Antwort ist normalerweise Nein, aber die genaue Vorgehensweise, um dies nicht zu erreichen, kann variieren und einige Auswirkungen auf das Spiel haben.
Es ist wichtig zu beachten, dass dies jetzt so funktioniert . Die alten Mario-Spiele selbst waren wahrscheinlich auf sehr unterschiedliche Weise programmiert (ich kann nicht genau sagen), da die Hardware zu diesem Zeitpunkt extrem eingeschränkt war. Das Konzept von 3D gab es damals noch nicht; Heutzutage verwenden fast alle Spiele, auch solche, die vollständig aus 2D bestehen, 3D-Rendering in irgendeiner Form, auch wenn sie nicht wissen, dass sie dies tun. Moderne Videohardware ist in erster Linie 3D, und 2D-Rendering (zumindest wenn die Hardware ordnungsgemäß verwendet wird) ignoriert lediglich die 3. Dimension.