Dans une certaine mesure, cela dépend du rendu de la 3D. Par exemple, OpenGL éliminera automatiquement la géométrie en dehors de la plage -1,0, +1,0 dans l'espace d'écran XY (Z est plus complexe mais similaire). La géométrie éliminée ne génère jamais de fragments (environ pixels) et n'est donc jamais transformée en imagerie réelle, malgré son envoi au système pour le rendu. Dans tous les cas, il est impossible d'écrire dans un espace en dehors de la fenêtre de rendu (si tout fonctionne comme il se doit).
Dans certains contextes, il suffit de s'appuyer sur ce comportement comme optimisation. Cependant, vous devez toujours passer toutes vos données de jeu à travers au moins une étape de rendu (vertex shaders) avant que la carte vidéo puisse savoir ce qui est visible. Dans quelque chose comme, disons, Skyrim, ce ne serait pas pratique. Non seulement vous devez envoyer tous les sommets du monde via le pipeline de rendu, mais vous devez également charger chaque sommet dans la mémoire système / vidéo. C'est inefficace, voire possible.
Ainsi, de nombreux jeux utiliseront l'abattage basé sur le processeur. Ils mettent généralement en œuvre une sorte de système de niveau de détail (niveau de détail), dans lequel la qualité et l'existence des actifs sont influencés par l'importance qu'ils sont évalués pour être dans un contexte donné. Un maillage pyramidal peut être une approximation acceptable pour une montagne si vous êtes à 80 kilomètres de là. Si vous ne pouvez pas le voir du tout (comme il est bloqué par d'autres montagnes), il n'est même pas nécessaire de le charger. Il existe un certain nombre de méthodes plus complexes pour ce faire qui sont des sujets qui, selon moi, ne sont pas directement liés à la profondeur demandée par cette question, mais regardez la tessellation pour l'un des exemples les plus courants.
L'essentiel est que les visuels ne sont que le produit du jeu. Les données réelles n'ont rien à voir directement avec ce que vous voyez ou ne voyez pas la plupart du temps, et les données sont filtrées par différentes étapes pour supprimer les informations superflues avant d'atteindre le point où une image est écrite à l'écran. Selon la conception du moteur, les visuels peuvent être extrêmement dissociés de la logique du jeu, dans la mesure où quelque chose comme avoir une interface 2D et 3D avec le même jeu est une possibilité. Il est même possible pour de nombreux moteurs de jeu de fonctionner sans aucune sortie; Parfois, cela est utilisé pour tester l'IA du jeu.
C'est là que les choses peuvent se compliquer, cependant. Dans quelque chose de simple comme un jeu Mario, il n'est pas trop prohibitif de calculer le mouvement de tous les ennemis dans le niveau, même s'ils ne sont pas visibles. Dans les contextes modernes, ce qui se passe hors écran est une véritable question à considérer sérieusement. S'il y a plusieurs villes entières de PNJ, comment gérez-vous leur comportement lorsqu'ils sont complètement éliminés - comme lorsque le joueur se trouve dans une ville différente? Voulez-vous vraiment calculer des centaines de décisions de PNJ sur toute la carte? La réponse est généralement non, mais l'approche exacte à suivre pour ne pas le faire peut varier et cela peut avoir des répercussions sur le jeu.
Il est important de noter que c'est ainsi que les choses fonctionnent maintenant . Les anciens jeux Mario eux-mêmes étaient probablement programmés de manières très différentes (je ne peux pas parler des moyens exacts), étant donné les limites matérielles extrêmes de l'époque. Le concept de la 3D n'existait pas à l'époque; pourtant aujourd'hui, presque tous les jeux, même ceux qui sont entièrement en 2D, utilisent le rendu 3D sous une certaine forme, même s'ils ne le savent pas. Le matériel vidéo moderne est d'abord 3D, et le rendu 2D (au moins lorsqu'il utilise correctement le matériel) ignore simplement la 3ème dimension.