Do pewnego stopnia jest to funkcja renderowania 3D. Na przykład OpenGL automatycznie wyrówna geometrię poza zakresem -1,0, +1,0 w przestrzeni ekranu XY (Z jest bardziej złożone, ale podobne). Wyrównana geometria nigdy nie generuje fragmentów (w przybliżeniu pikseli), a zatem nigdy nie jest przekształcana w rzeczywiste obrazy, pomimo wysłania do systemu w celu renderowania. W każdym razie nie można pisać w przestrzeni poza oknem renderowania (jeśli wszystko działa tak, jak powinno).
W niektórych kontekstach wystarczy polegać na tym zachowaniu jako optymalizacji. Jednak nadal musisz przekazać wszystkie dane gry przez co najmniej jeden etap renderowania (shadery wierzchołków), zanim karta graficzna będzie wiedziała, co jest widoczne. W czymś takim, jak powiedzmy Skyrim, byłoby to niepraktyczne. Nie tylko musisz wysyłać każdy wierzchołek na świecie przez potok renderowania, ale musisz załadować każdy wierzchołek do pamięci systemowej / wideo. Jest to nieefektywne, jeśli w ogóle możliwe.
Dlatego wiele gier korzysta z cullingu opartego na procesorze. Zazwyczaj będą wdrażać pewnego rodzaju system LOD (poziom szczegółowości), w którym na jakość i istnienie aktywów ma wpływ to, jak ważne są w danym kontekście. Siatka piramidalna może być akceptowalnym przybliżeniem dla góry, jeśli jesteś 50 mil od niej. Jeśli w ogóle go nie widzisz (jakby był blokowany przez inne góry), nie musisz go nawet ładować. Istnieje wiele bardziej skomplikowanych metod, które są tematami, które moim zdaniem nie są bezpośrednio związane z głębokością wymaganą przez to pytanie, ale spójrz na teselację na jeden z najczęstszych przykładów.
Istotą tego jest to, że efekty wizualne są tylko produktem gry. Rzeczywiste dane nie mają nic wspólnego z tym, co widzisz lub nie widzisz przez większość czasu, a dane są filtrowane według różnych etapów w celu usunięcia obcych informacji przed dotarciem do punktu, w którym obraz jest zapisywany na ekranie. W zależności od projektu silnika wizualizacje można bardzo oddzielić od rzeczywistej logiki gry, o ile istnieje coś takiego jak posiadanie interfejsu 2D i 3D do tej samej gry. Możliwe jest nawet, że wiele silników gier będzie działać bez takiej mocy; czasami służy to do testowania AI gry.
Tam jednak sprawy mogą się komplikować. W czymś prostym, takim jak gra Mario, obliczanie ruchu wszystkich wrogów na poziomie nie jest zbyt wygórowane, nawet jeśli nie są widoczne. We współczesnych kontekstach to, co dzieje się poza ekranem, jest poważnym problemem. Jeśli jest wiele całych miast NPC, jak radzisz sobie z ich zachowaniem, gdy są całkowicie unicestwieni - na przykład, gdy gracz przebywa w innym mieście? Czy naprawdę chcesz obliczać setki decyzji NPC na całej mapie? Odpowiedź zazwyczaj brzmi „nie”, ale dokładne podejście do tego, by tego nie robić, może się różnić i może mieć wpływ na grę.
Ważne jest, aby pamiętać, że tak właśnie działa teraz . Same stare gry Mario były prawdopodobnie programowane na bardzo różne sposoby (nie potrafię mówić dokładnie), biorąc pod uwagę ekstremalne ograniczenia sprzętowe w tym czasie. Koncepcja 3D nie istniała wtedy; ale dziś prawie wszystkie gry, nawet te całkowicie 2D, używają renderowania 3D w jakiejś formie, nawet jeśli nie wiedzą, że to robią. Nowoczesny sprzęt wideo jest w pierwszej kolejności w 3D, a renderowanie 2D (przynajmniej wtedy, gdy właściwie wykorzystuje sprzęt) ignoruje jedynie trzeci wymiar.