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?
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í | ❌ No | Sombra de contacto incorrecta o "sucia" |
Screen Space Reflections (SSR) | ✅ Sí | ❌ No | Reflejos distorsionados, parpadeo |
Refraction / distortion | ✅ Sí | ✅ Parcialmente | Imagen distorsionada mal o sin efecto |
FXAA / SMAA / TAA (antialiasing) | ✅ Sí | ❌ No | Bordes sin suavizar, pixelado |
Motion blur | ✅ Sí | ❌ No | No hay desenfoque o se ve mal aplicado |
Depth of field (DOF) | ✅ Sí | ❌ No | Enfoque desenfocado incorrectamente |
Post-procesado basado en pantalla | ✅ Sí | ❌ No | Efectos 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.
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.
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ística | Qué hace |
---|---|
Integración hardware-software | El 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 real | Las 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áfico | Los 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 DLSS | El 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.
Aspecto | Juegos Next Gen Nativos | Juegos Retrocompatibles (Mejora Automática) |
---|---|---|
Pipeline de culling | Prepass simplificado + DL para visibilidad y LOD | Prepass dinámico sobre buffers de juegos legacy |
Hardware involucrado | Tensor Cores y unidades DL integradas en GPU | Mismo hardware, sin necesidad de cambios en el juego |
Intervención del desarrollador | Mínima o nula (automatizado a nivel sistema) | Ninguna, proceso transparente para juegos existentes |
Objetivo principal | Maximizar rendimiento y calidad visual en nuevas escenas | Mejorar rendimiento y estabilidad en títulos legacy |
Beneficios | Escenas más complejas, mayor fluidez, calidad mejorada | Mejor tasa de frames, reducción de carga gráfica |
Limitaciones potenciales | Requiere hardware moderno y optimización de modelos DL | Posible limitación por calidad del buffer recibido |
Sinergias | Compatible y complementario con DLSS y otras IA | Aprovecha 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.