Blog Personal.

Conceptos Básicos, Futuro

Unreal Engine 5 (II): Nanite

En la segunda parte entramos en el segundo punto que es Nanite lo que de paso nos permitirá entender un punto de Lumen que me habéis comentado en lo comentarios porque tiene que ver y es la explicación por el cual Epic ha decidido utilizar PlayStation 5 para mostrar la demo y no un PC de gama alta y si, bueno, parte de la explicación, la otra es que la marca PlayStation es más potente pero especialmente el motivo es el uso del SSD que con su menor latencia y ancho de banda permite trasladar datos desde y hacía la memoria RAM muy rapidamente sin que hayan las pesadas esperas del Disco Duro mecánico que añaden una enorme latencia a la búsqueda de los datos su son propias de los discos duros mecánicos.

Pero veamos que es lo que es Nanite en palabras de la propia Epic, voy a tomar el artículo de Digital Foundry para explicarlo.

La idea de Nanite es que en vez de tener varios modelos detallados según la distancia, es decir, con diferentes niveles de detalle lo que tenemos es un modelo estándar al que la GPU le va recortando detalle según la distancia y luego almacena los modelos ya generados en la RAM y si esta no tiene suficiente capacidad y/o en ese momento de la escena ese modelo no es necesario entonces lo envia rápidamente al SSD donde queda almacenado, bueno, en realidad se envían conjuntamente un modelo en todos sus niveles de detalle de manera conjunta pero el hecho que el acceso sea instantáneo en un SSD sin tener que esperar a la búsqueda permite acceder a ese modelado en concreto.

Para evitar tener que hacer el proceso continuamente esos modelos derivados se almacén en memoria y son rescatados de nuevo cuando es necesario para no tener que volverlos a calcular su nivel de detalle, esto se traduce en un ahorro en tiempo enorme ya que los artistas no tienen porque perder el tiempo creando varias versiones de un mismo modelo con diferentes niveles de detalle.

La ventaja de esto es que elimina los mapas de Normales para simular geometría en elementos con bajo detalle. El Normal Mapping empezó a utilizarse a partir de la primera Xbox, es una evolución del Bump Mapping y permite dar a las texturas una sensación de relieve sobre la superficie. Con Nanite lo que Epic intenta es que los motores se olviden de trucos como el Normal Mapping para definir la geometría de los objetos y tiren de geometría pura y dura para ello.

En realidad esto no es más que la aplicación de los Mesh Shaders/Primitive Shaders en un motor gráfico.

Ahora bien, se ha de tener en cuenta el termino micro-poligono. Las unidades de rasterizado a la hora de convertir los triángulos en fragmentos (grupos de pixeles) tiene un limite en el tamaño de los fragmentos que genera de 16 pixeles (4×4) y cuando termina lo que hace es enviar ese fragmento de 4×4 en 4 fragmentos de 2×2.

¿Pero que ocurre cuando los polígonos son más pequeños? Pues que se transforman en fragmentos de <16 pixeles, pero no por hacer un fragmento de 8 pixeles va a ir el doble de rápido, ni 4 veces más rápido con un fragmento de 4 pixeles. Esto significa que la eficiencia y la velocidad de la unidad de rasterizado, la cual afecta a la parte del texturizado y el Pixel/Fragment Shader en consecuencia pierde su eficiencia cuando trabaja con polígonos muy pequeños.

Cuando en la entrada titulada la Next-Next Gen hable de que la rasterización va a evolucionar a utilizar micropolígonos y que las unidades de función fija van a necesitar cambios profundos me refería a esto ya que la unidad de rasterizado es una unidad de función fija no programable.

Es por ello que la gente de Epic en el caso de Nanite han tenido que buscar un reemplazo de esta funcionalidad en forma de la utilización de Compute Shaders para que la unidad de rasterizado no resulte en un problema para triángulos mucho más pequeños que los que miden 16 pixeles al ser convertidos en fragmentos.

Uno de los cambios a futuro es que el pipeline gráfico ha desaparecido debido a la versatilidad, antes después de invocar ciertas étapas de los Shaders estos invocaban a la función fija que iba después en el pipeline o una unidad de función fija invocaba la siguiente etapa que le correspondía. En la siguiente generación es posible invocar cualquier tipo de Shader y cualquier tipo de unidad de función fija cuando se quiera y sea necesario y no siguiendo un orden marcado como ocurre con el pipeline tradicional y común.

En este caso, Epic invoca una étapa adicional vía Compute Shader para rasterizar eficientemente los triángulos que se convierten en fragmentos de menos de 16 pixeles de tamaño. Tened en cuenta que con el cambio de paradigma es posible modificar el pipeline e invocar los Compute Shaders en ese caso. ¿La contrapartida? Obviamente dado que estos utilizan las mismas unidades que el resto de Shaders y todo es una suma cero esto es quitarle rendimiento al resto de etapas y esta muy claro que en un futuro con tal de obtener rendimiento en los juegos vamos a ver cambios en la unidad de rasterizado con tal de dejar a las ALUs encargadas de los Shaders completamente libres, pero eso será en hardware futuro.

Dado que los primeros juegos bajo el UE5 van a salir más allá de 2021 no hay prisas para implementar este cambio, la pregunta es si PS5 y Xbox Series X van a tener una versión mejorada a mitad de generación que entre otros aplique este cambió.

Esto es todo, tenéis el Discord y los comentarios de esta entrada para comentarla.

0 0 vote
Article Rating
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Juan

Está técnica de iluminación es capaz de representar los reflejos en superficies apropiadas como lo haría la otra aproximación con los rt cores simulando las incidencias en las superficies? En esta demo al menos no lo pude apreciar. Entonces las sombras se hicieron de una manera más tradicional por rasterizado? Estuve viendo q x todos lados muestran la misma demo de ps5 corriendo en una laptop con una rtx 2080 y funciona mucho mejor q en la 1era. Habrá q ver las circunstancias de dicho test, pero demostraría q cualquier equipo con un SSD medianamente bueno pueda ejecutar ese nivel… Read more »

MACUZO-AUC-DISVARIANTO

Lo primero que quisiera ver es ¿Dónde carajos o quién carajos en EPIC UNREAL ha dicho que la VIDEO DEMO salio por la bendita SSD de Cerny? . Descargue el vídeo los CC del vídeo (https://www.youtube.com/watch?v=qC5KtatMcUw) original (https://savesubs.com/sites/download-youtube-subtitles) en ningún momento el vídeo dice tal tontería, por lo menos el vídeo no lo dice o el resto de la publicidad de Epic a Sony (que pueden ser otras redes sociales). Otros temas interesantes que seguramente me llevarán a la inquisición GAMER es en relación a la compresión de archivos y los discos duros comprimidos desde la SONY. Existen muchas aplicaciones… Read more »

Al parecer todo este desaguisado proviene de un comentario de del dueño de Fornite al IGN:

https://www.ign.com/articles/ps5-ssd-breakthrough-beats-high-end-pc

<>

Me da risa de los silogismo griegos comparados con la mercadotecnia viral SONY. Al parecer varias medias verdades producen verdades completas.

Set

Muy buena explicación de los micro poligonos.