Micropolígonos y la próxima generación de consolas y tarjetas gráficas
En los próximos años veremos cambios bastante importantes en la estructura de las GPU, especialmente de cara a la transición definitiva de la rasterización al Ray Tracing, lo cual implica el uso de micropolígonos para la geometría de la escena, y con ello, cambios importantes que veremos en el pipeline gráfico, los cuales en parte ya se han iniciado con los Mesh Shaders y tecnologías como Nanite en Unreal Engine 5. Por lo que en esta entrada haremos un salto al futuro, a la próxima generación de consolas.
Índice de contenidos
¿Qué son los micropolígonos?
Para modelar los diferentes elementos que vemos en pantalla en un juego en tres dimensiones se utilizan polígonos formados por vértices en un espacio tridimensional. La cantidad de estos en cada modelado nos dan una mayor precisión a la hora de representar sus formas respecto a la realidad. Sin embargo, de un tiempo a esta parte existe un cuello de botella dentro del propio hardware de toda GPU: la unidad de rasterizado.
Dichas unidades toman los diferentes polígonos, los proyectan en un espacio en 2D para convertirlos en píxeles que luego la unidad de texturizado le tendrá que dar color, todo ello sin contar los shaders correspondientes. Sin embargo, tienen un problema y es que los polígonos a partir de cierto tamaño no los saben manejar, añadiendo píxeles de más a cada composición. Pues bien, esos polígonos tan pequeños son los llamados micropolígonos y poderlos manejar de forma eficiente requiere cambios en el hardware, en concreto en las unidades de rasterizado.
Por ejemplo, para solucionar este problema, Nanite en Unreal Engine 5 toma un shader de computación en vez de una unidad de función fija encargada de manejar polígonos de menos de 16 píxeles, ¿pero cuánto menos? Pues tanto como que estamos hablando de densidades a nivel de píxel o incluso por debajo. Y claro, la cosa se agrava si tenemos en cuenta que la eficiencia de las unidades de rasterizado baja en picado cuanto más densa es la geometría.
¿No es contraproducente tal cantidad de geometría con los micropolígonos?
Esto es lo que podemos ver al comparar diferentes modelados donde llegados a un punto, la cantidad de polígonos no parecen mejorar el aspecto. En todo caso, se ha de decir que no todos los elementos en pantalla requerirán ser modelados con una gran cantidad de polígonos y que el mayor beneficio lo tendrán ciertos beneficios sobre otros. Es por ello que hemos decidido dividir las ventajas de los micropolígonos en dos apartados distintos.
El uso de micropolígonos en un videojuego les permite a los modeladores un detalle mucho más preciso y libertad total en las formas de los elementos de los videojuegos que los utilicen. Por ejemplo, cosas como las imperfecciones de la piel de los personajes. No obstante, esto no tiene ningún poder si no se acompaña de una animación precisa y de calidad.
Y es aquí donde entra la ventaja del uso de micropolígonos, ni más ni menos que en la animación, ya que elementos como las deformaciones suaves, la expresividad facial de los personajes y los detalles sutiles como la animación de la ropa o el pelo. No en vano, la simulación en tejidos y fluidos va a mejorar enormemente en los próximos años gracias al uso de estas formas geométricas tan simples, pero con tanto potencial.
Ray Tracing por defecto a partir de la próxima generación
Ahora bien, entremos en los costes computacionales y la relación que tienen los micropolígonos con el Ray Tracing. Hemos de partir del hecho de que el algoritmo para generar gráficos a tiempo real más utilizado en videojuegos es la rasterización, también llamado algoritmo Z-Buffer o del pintor. No vamos a entrar en detalle de cómo funciona, ya que para explicaros la ventaja de los micropolígonos solo necesitamos que tengáis en cuenta la carga gráfica de cada tipo primitiva según el pipeline gráfico.
Esta estructura tan rara es un gráfico donde el eje vertical de forma descendente marca la carga computacional en las diferentes etapas del pipeline 3D y la horizontal la carga de trabajo, la cual se va ensanchando cuanto más grande es. El motivo de estas diferencias es que se empieza primero por vértices, luego polígonos para terminar con píxeles que son los que más densidad hay. De ahí a que el pipeline geométrico haya necesitado tradicionalmente menos potencia computacional que lo que ocurre después del rasterizado.
Sin embargo, con los micropolígonos la cantidad de geometría sube tanto que se iguala a la cantidad de píxeles. Por lo que esto rompe la eficiencia del algoritmo de rasterizado respecto al trazado de rayos. ¿Y por qué? Pues por el hecho que en la rasterización el algoritmo es: por cada poligono… en cambio, en el Ray Tracing es: por cada píxel … por lo que os podéis imaginar por donde va la cosa. Vamos, que con los micropolígonos el rasterizado deja de ser el algoritmo eficiente para generar gráficos a tiempo real y le pasa el testigo al Ray Tracing.
Cambios en el hardware que se harán necesarios
Los micropolígonos al igual que los convencionales tendrán que rasterizarse en cada fotograma y en resoluciones de las que hablamos, estamos hablando de millones. Si para el Ray Tracing hizo falta el añadido de las unidades de intersección, los micropolígonos tendrán sus propias unidades de rasterizado, no a nivel del Shader Engine, sino del núcleo de la GPU, acompañando a las unidades de texturas y las de intersección.
No obstante, todo ello tiene un enorme handicap y son las estructuras de datos que almacenan la geometría de la escena en forma de árbol binario, los llamados BVH, y que con los micropolígonos se hacen masivos. Es en este punto donde la teselación o subdivisión de superficies haría acto de aparición. Es decir, se almacenará en memoria el modelado con la geometría más baja posible, para luego, una vez importada la información dentro de la GPU, expandirla a densidad de micropolígono.
La otra mejora ya se habló en su día, los medios hablaron de cómo Microsoft va a mejorar el Ray Tracing con los SSD gracias a leer una patente y copiarse entre ellos. La realidad es que el crecimiento de la densidad geométrica en la escena provocará la necesidad de un SSD para gráficos para mover la información entre la VRAM y la unidad de estado sólido. Lo que se traduce en otros cambios adicionales que iremos viendo progresivamente en las próximas generaciones de consolas y de tarjetas gráficas.
Ya para terminar, ¿cómo sabemos que esto será para la next gen?
Por si las evidencias que os hemos dejado no os parecen suficiente, os dejaremos caer que el diablo se encuentra en los detalles y muchas veces se os escapan por el hecho que no miráis con vuestros ojos, sino con los de otros que no quieren documentarse o carecen del conocimiento técnico suficiente. Y es que a veces una imagen vale más que mil palabras:
Como se puede ver en la imagen de la hoja de ruta de la siguiente Xbox, tenemos una sección donde se habla de optimizaciones en el renderizado de micropolígonos, así que solo nos hace falta esperar. Y es que a nivel gráfico y viendo el poco salto aparente de una generación de consolas a otra, está claro que tanto para PlayStation como para consola de Microsoft hace falta un revulsivo y ese será la geometria basada en micropolígonos.