В некоторой степени это зависит от того, как 3D отображается. Например, OpenGL автоматически отбраковывает геометрию за пределами диапазона -1,0, +1,0 в пространстве экрана XY (Z более сложный, но похожий). Отобранная геометрия никогда не генерирует фрагменты (приблизительно пиксели) и, следовательно, никогда не превращается в фактические изображения, несмотря на то, что отправляется в систему для визуализации. В любом случае невозможно записать в пространство за пределами окна рендеринга (если все работает как надо).
В некоторых случаях достаточно полагаться на это поведение как на оптимизацию. Тем не менее, вам все равно придется пройти все свои игровые данные, по крайней мере, через одну стадию рендеринга (вершинные шейдеры), прежде чем видеокарта сможет узнать, что видно. В чем-то вроде, скажем, Скайрима, это было бы непрактично. Вам нужно не только отправить каждую вершину в мире через конвейер рендеринга, но и загрузить каждую вершину в системную / видеопамять. Это неэффективно, если вообще возможно.
Таким образом, во многих играх используется отбор на основе процессора. Как правило, они реализуют какую-то систему LOD (уровень детализации), где качество и наличие активов зависит от того, насколько важно, чтобы они оценивались в данном контексте. Пирамидальная сетка может быть приемлемым приближением для горы, если вы находитесь в 50 милях от нее. Если вы его вообще не видите (например, он заблокирован другими горами), нет необходимости даже загружать его. Существует ряд более сложных методов для этого, которые, по моему мнению, не имеют прямого отношения к глубине, запрошенной этим вопросом, но посмотрите на тесселяцию для одного из самых распространенных примеров.
Реальная суть этого в том, что визуальные эффекты являются лишь продуктом игры. Фактические данные не имеют непосредственного отношения к тому, что вы видите или не видите большую часть времени, и данные фильтруются по различным этапам для удаления посторонней информации, прежде чем попасть в точку, где изображение выводится на экран. В зависимости от конструкции движка, визуальные эффекты могут быть чрезвычайно отделены от реальной игровой логики, поскольку возможно что-то вроде двухмерного и трехмерного интерфейса к одной и той же игре. Многие игровые движки даже могут работать без какой-либо производительности; иногда это используется для тестирования игрового ИИ.
Вот где все может быть сложно, хотя. В чем-то простом, например, в игре Mario, не слишком сложно вычислить движение всех врагов на уровне, даже если они не видны. В современных условиях то, что происходит за кадром, является серьезным вопросом. Если есть несколько целых городов NPC, как вы справляетесь с их поведением, когда они полностью отбракованы - например, когда игрок находится в другом городе? Вы действительно хотите вычислять сотни решений NPC по всей карте? Ответ обычно - нет, но точный подход к достижению цели может отличаться, и это может иметь некоторые последствия для игры.
Важно отметить, что именно так все и происходит сейчас . Сами старые игры Mario, скорее всего, были запрограммированы совершенно по-разному (я не могу сказать точные способы), учитывая экстремальные аппаратные ограничения в то время. Концепция 3D еще не существовала; однако сегодня почти все игры, даже полностью двумерные, используют 3D-рендеринг в той или иной форме, даже если они не знают, что это делают. Современное видеооборудование - это, прежде всего, 3D, а 2D-рендеринг (по крайней мере, когда он правильно использует аппаратное обеспечение) просто игнорирует 3-е измерение.