Culling via Deep Learning: la arma secreta para la Next Gen

Con el auge de motores como Unreal Engine 5 y los pormenores de técnicas como Nanite, las técnicas avanzadas de Culling se vuelven cada vez más necesarias. Combinadas con  tecnologías como la fotogrametría virtual y el aprendizaje profundo, prometen automatizar este proceso en futuras generaciones de consolas, permitiendo escenas más densas y detalladas sin comprometer la fluidez del juego y mejorando tanto títulos presentes, como pasados y futuros. Y es que el Deep Learning no solo sirve en videojuegos para subir de resolución o generar frames de forma automatizada.

¿Qué es el culling geométrico?

Culling visión

Entendemos como culling a la eliminación de aquellos polígonos de la lista de dibujado en una escena en 3D, ya sea por el hecho de que se encuentren total o parcialmente fuera de cámara (Fustrum Culling), por el hecho de encontrarse el objeto demasiado alejado de la cámara (Hi-Z Culling) como para ser relevante o por encontrarse detrás de otro objeto que lo solapa. Los tres requieren estrategias distintas. No obstante, en el que nos centraremos en este artículo es en el llamado LOD Culling. Donde se descartan los objetos demasiado alejados de la cámara, pero dentro del campo de visión. Nos centraremos  cara a la optimización de los juegos no solo futuros, sino también presentes, en especial por los problemas derivados de escenas con una alta complejidad geométrica, algo que ya se empieza a ver en videojuegos actuales, especialmente aquellos basados en Unreal Engine 5.

El problema de los Pixel/Fragment Shaders

El tipo de shader computacionalmente más costoso son los Pixel/Fragment Shaders, ya que la cantidad de píxeles a colorear y procesar en una escena es mucho mayor que la cantidad de polígonos en pantalla, excepto en escenas renderizadas con micropolígonos, pero no es el caso en videojuegos. El problema es que no procesan los píxeles individualmente, sino en grupos de 2 x 2 píxeles que se procesan en paralelo. Ya que comparten cierta información, en especial los gradientes, los cuales no son más que lo mucho que cambia un color respecto a su valor y el de sus vecinos, se trata de una información crucial para la GPU.

Uso en videojuegos¿Requiere gradientes?¿GPU los calcula automáticamente?¿Qué pasa si faltan o son incorrectos?
Mipmapping (texturas lejanas)✅ Sí✅ SíTexturas parpadean, se ven borrosas o mal filtradas
Normal mapping✅ Sí✅ Sí (con tangente/bitangente bien definidos)Iluminación incorrecta o con manchas
SSAO (ambient occlusion)✅ Sí❌ NoSombra de contacto incorrecta o "sucia"
Screen Space Reflections (SSR)✅ Sí❌ NoReflejos distorsionados, parpadeo
Refraction / distortion✅ Sí✅ ParcialmenteImagen distorsionada mal o sin efecto
FXAA / SMAA / TAA (antialiasing)✅ Sí❌ NoBordes sin suavizar, pixelado
Motion blur✅ Sí❌ NoNo hay desenfoque o se ve mal aplicado
Depth of field (DOF)✅ Sí❌ NoEnfoque desenfocado incorrectamente
Post-procesado basado en pantalla✅ Sí❌ NoEfectos visuales con errores (glow, blur, etc.)

Cuando un polígono es demasiado pequeño, mide menos de 2 x 2 pixeles, la GPU lo que hace es rellenar la información que falta con valores duplicados para que no haya errores por la falta de información. Por lo que, en teoría, cualquier objeto de tamaño minúsculo o lo suficientemente alejado de la cámara debería descartarse automáticamente y con objeto no nos referimos a un simple polígono dentro de un objeto más grande, sino a todo el objeto en sí. Es decir, no existe un descarte automático de polígonos por parte de la GPU, sino que ese trabajo corre en manos de la CPU, más que nada por el hecho de que en escenas muy complejas la carga computacional es horriblemente alta.

Fotogrametría virtual como solución

La fotogrametría ea una técnica que se usa para crear modelos 3D muy detallados a partir de fotografías reales a objetos tomadas desde diversos ángulos, creemos que esta idea se aplicará en videojuegos a través del Deep Learning (IA), pero de una forma concreta que además facilitará la creación de árboles BVH, ideales para el Ray Tracing. La idea es usar como base una versión simplificada del siguiente frame, la cual carezca de color, texturas y tampoco ejecute shaders. Es decir, la escena plana solo con polígonos y que, por lo tanto, solo utilice dos búfers: el de profundidad o Z-Buffer y el ID Buffer para ayudarle a la GPU a identificar partes comunes de un mismo objeto.

Render sin textura fotogrametria virtual

A partir de dicho frame se puede obtener información muy útil de cara a todo tipo de Culling. Por ejemplo, podemos ver qué objetos están visibles o no respecto a la cámara, aquellos que están total o parcialmente tapados por otros objetos y aquellos lo suficientemente lejanos tras un análisis de la imagen vía Deep Learning y descartarlos de la escena automáticamente. ¿Cómo? Almacenar la geometría sería muy costoso, por lo que se eliminarían de la lista de pantalla actual. Esto se haría añadiendo un bit inicial de información a cada triángulo que le mandaría a la GPU ignorarlo.

A través de modelos entrenados de Deep Learning adaptados a la interpretación de mapas de profundidad e identificadores de objetos (ID buffers), las unidades tipo Tensor Core (que serán comunes en la siguiente generación de consolas) podrán realizar las inferencias necesarias para localizar toda la geometría descartable.

La otra aplicación, la generación del BVH

La fotogrametría virtual podría usarse sin problemas para la creación de las estructuras de aceleración para el Ray Tracing, los llamados BVH, de forma más rápida y eficiente y no solo para el Culling de objetos no visibles en la escena. La idea es que, a partir del rénder de la escena simplificado del que estamos hablando, se puede catalogar dónde se encuentra cada objeto dentro del espacio en 3D que representa la pantalla y hacer una estimación de las relaciones espaciales de los objetos. Como, por ejemplo, saber qué objetos están agrupados o cercanos entre sí. Lo que le permite a la GPU construir nodos en árbol BVH que agrupen objetos visibles o relevantes.

Doom Dark Ages

Las ventajas de generar un BVH con un LOD Culling via fotogrametría virtual son enormes. No solo es aplicable a cualquier tipo de juego, sino que aumenta el rendimiento general tanto en juegos que usan rasterización como los que se basan en trazado de rayos o una combinación de ambas técnicas. Ya que, entre otras cosas, permite:

  • Descartar rápidamente grandes grupos de objetos fuera del campo visual o detrás de otros.
  • El BVH puede ayudar a determinar en qué nivel de detalle renderizar un grupo entero de objetos.
  • Al actualizar el BVH en cada frame este puede dar mejor información sobre los cambios de visibilidad y distancia. Lo que acelera tanto todos los tipos de Culling como la aplicación del Ray Tracing.

Obviamente, lo que veremos en pantalla será una escena completa con sus texturas, shaders y efectos de postprocesado. Lo que permitirá esto es que solo se procesarán los objetos visibles y con el detalle adecuado.

Ya, muy interesante todo esto, pero, ¿cuándo lo veremos?

Pese a que PS5 Pro es una consola que ya incluye unidades especializadas para el Deep Learning en su GPU, no es una especificación base común de la generación y Xbox no tiene una consola con dichas características. Por lo que deberemos esperar a la siguiente generación de consolas para que esto aparezca, no como algo opcional, sino como una idea aplicable y automatizada en todos los videojuegos, tanto pasados, como presentes y futuros.

CaracterísticaQué hace
Integración hardware-softwareEl sistema y los controladores de la GPU se encargan solos de usar inteligencia artificial para decidir qué triángulos o grupos se ven o no, usando datos simples de renderizado y buffers de profundidad.
Inferencia en tiempo realLas GPUs con Tensor Cores trabajan a full en paralelo mientras el juego se dibuja, actualizando al instante qué geometrías se ven, cuáles no, o cuáles sobran, para un renderizado súper optimizado sin perder calidad.
Sin tocar el motor gráficoLos motores gráficos pasan esta tarea a la consola, dejando a los desarrolladores libres para enfocarse en la creatividad y el gameplay.
Combo con tech como DLSSEl mismo hardware que usa IA para mejorar la resolución también optimiza el rendimiento con culling automático, haciendo que los recursos gráficos fluyan mejor y más rápido.

De cara a títulos futuros, dicha automatización de la que estamos hablando permitirá un salto en la calidad y la complejidad visual de los videojuegos. Entre otra cosas permitirá escenas con mayor densidad geométrica y efectos visuales más avanzados sin sacrificar la fluidez o la estabilidad de la experiencia. Además, se reducirá la barrera técnica para desarrollar entornos optimizados, democratizando el acceso a estas tecnologías para estudios de cualquier tamaño.

AspectoJuegos Next Gen NativosJuegos Retrocompatibles (Mejora Automática)
Pipeline de cullingPrepass simplificado + DL para visibilidad y LODPrepass dinámico sobre buffers de juegos legacy
Hardware involucradoTensor Cores y unidades DL integradas en GPUMismo hardware, sin necesidad de cambios en el juego
Intervención del desarrolladorMínima o nula (automatizado a nivel sistema)Ninguna, proceso transparente para juegos existentes
Objetivo principalMaximizar rendimiento y calidad visual en nuevas escenasMejorar rendimiento y estabilidad en títulos legacy
BeneficiosEscenas más complejas, mayor fluidez, calidad mejoradaMejor tasa de frames, reducción de carga gráfica
Limitaciones potencialesRequiere hardware moderno y optimización de modelos DLPosible limitación por calidad del buffer recibido
SinergiasCompatible y complementario con DLSS y otras IAAprovecha la misma infraestructura para múltiples mejoras

Todo ello no solo servirá para optimizar los juegos que saldrán a futuro, sino que el uso de la fotogrametría virtual junto al Deep Learning para la generación de BVH y culling inteligente también les permitirá a las futuras consolas de videojuegos mejorar automáticamente el rendimiento y la calidad visual de juegos actuales e incluso de generaciones anteriores mediante la retrocompatibilidad.

5 2 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x