Blog Personal.

Uncategorized

La Next-Next Gen (Feedback)

Comentario#1:

Gracias x la entrada Urian! Entonces sería el fin de la GPU como la conocemos. Entiendo q los juegos tal cual se desarrollan no serían compatibles con este cambio. Yo no entiendo mucho del tema, pero seguiría siendo rasterizado aún o se pasaría a trazado de rayos en su totalidad con el aumento de poder de cómputo q esto conlleva?

Y otra pregunta, para realizar un cambio así de paradigma debería ser en base a una API nueva, no? Xq no me veo sólo a una empresa cambiar y a las otras no si no se llega a programar los juegos de una manera diferente.

No, no creo que sea el fin de la GPU tal y como la conocemos desde que la arquitectura de la GPU desde hace tiempo dejo de estar asociada al pipeline gráfico tipo OpenGL para ser un sistema cuanto menos altamente flexible, eso si, vamos a necesitar una enorme cantidad de cambios en ciertas unidades, especialmente las de función fija con tal de adoptar el nuevo paradigma.

Por otro lado, no me veo una nueva API apareciendo de la nada y rompiendo con lo anterior, lo que vamos a ver es una actualización de lo que ya tenemos, no va a ser una ruptura con los mecanismos de programación y el hardware que ya tenemos sino que más bien va a ser producto de lo que ocurre cuando llegamos a cierto nivel de complejidad geométrica en la escena donde la rasterización ya no tiene ventaja respecto al trazado de rayos en cuanto a la velocidad de renderización de la escena y dado que el trazado de rayos tiene una serie de ventajas que las rasterizacion no tiene por criterios utilitarios esta deja de tener sentido.

Simplemente Nvidia cree que esto ocurrirá a partir de 2023 donde los juegos ya no verán necesario utilizar el pipeline de rasterizado.

La idea es que cuando se llega a cierto nivel de carga geométrica entonces el rasterizado deja de tener sentido en cuanto a velocidad y el trazado de rayos pasa a tener preferencia cuando lo que queremos es velocidad más que detalle, que es lo preferente en videojuegos ya que necesitamos una alta tasa de fotogramas, si además el trazado de rayos tiene ventaja en cuanto a visualización pues esta muy claro hacia donde irán las cosas.

Y ahora voy a responder a una pregunta del Discord.

Comentario#2:

Bueno, es por ello que se han implementado sistemas de Culling que lo que hacen es eliminar la lista de primitivas que no son visibles. La primera parte del pipeline de la next-next gen es renderizar la geometría de la escena de manera normal pero sin invocar ningún shader ni nada, solo para saber que elementos no son visibles de cara al Culling y poder crear el arbol BVH de la misma. Para realizar el Culling se utiliza el Geometry Engine que elimina de la lista de triángulos a renderizar los no visibles y/o los que no cumplen ciertas caracteristicas.

Por otro lado, el hecho de tener el arbol BVH antes del renderizado convierte la arquitectura en una del tipo First Sort donde la geometría de la escena esta ordenada desde antes de la etapa geometrica del pipeline.

En el Trazado de Rayos puro y duro esto es necesario de cara a crear el BVH y evitar tener que impactar los rayos pixel por pixel. En el actual trazado de rayos que se ha implementado hablamos de una solución mixta donde la luz directa es solventada via rasterización y la indirecta por trazado de rayos, con la desaparición de la rasterización la iluminación directa pasará a ejecutarse via trazado de rayos.

Lo que ocurre es que actualmente dado que la primera etapa es via rasterizado se crea el BVH durante la fase de rasterizado, pero con el cambio de paradigma tendrá que crearse antes del renderizado, justo después de eliminar las primitivas no visibles y antes de la teselación adaptativa.

Comentario#3:

Entonces ¿un micropoligono es como un voxel?

Si pero no, un voxel no es un poligono aunque el concepto es parecido.

La idea no es otra que la de tomar los modelados y sobre-teselarlos según la distancia de tal manera que cada polígono pase a tener el tamaño de un pixel o de menos de 1 pixel.

Esto rompe por completo el concepto de textura ya que de la misma manera que podemos dar valor de color en un vertice en la geometría podemos utilizar ese concepto para «texturizar» el micropoligono antes de la fase de rasterizado y durante la geometría, rompiendo el orden del pipeline convencional donde el texturizado va a posteriori del rasterizado y haciendo que el pipeline se asemeje más al de REYES.

Es más, esto como dije rompe las diferencias del Pixel/Fragment Shader con el resto de Shaders y termina la unificación de estos.

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