Blog Personal.

Uncategorized

Inline Ray Tracing

Hace un par de días, Microsoft hizo un presentación para hablar del DirectX trec… Este… DirectX 12 Ultimate.

La tradición con DirectX era que con cada nueva versión grande se daba apoyo al hardware más avanzado y se dejaba obsoleta la tecnologia anterior, la gente tenía que comprar tarjetas gráficas nuevas para aprovechar las nuevas capacidades. Pues bien, hubo una excepción con DX12 y ahora con esta versión Ultimate han vuelto a la antigua tradición de…

Para empezar de todas las GPUs de Nvidia que hay el mercado solo la gama RTX 20×0 (basada en las TU10x) soportan el estándar completo de este DX12 Ultimate, ninguna anterior y se ha de aclarar que las GTX16x0 (TU11x) tampoco. En cuanto a AMD el soporte completo va a venir con RDNA2. En pocas palabras a nivel de PC preparaos para soltar el dinero en un tiempo, no a corto plazo sino a medio plazo porque os vais a encontrar que vuestra tarjeta gráfica ha quedado completamente obsoleta.

El añadido más importante es el del Ray Tracing/Trazado de Rayos, ya estaba definido en DXR 1.0, no obstante Microsoft ha decidido hacer que DXR 1.1 no sea una versión incremental de este sino que sea un planteamiento complemente distinto respecto a la primera versión que apareció para las Nvidia Turing. Microsoft le ha llamado al nuevo Ray Tracing como Inline Raytracing.

Pero pongamonos en situación, Nvidia creo el RT Core no solo para el Ray Tracing a tiempo real sino también para las granjas de renders. Su RT Core tiene una particularidad y es que puede funcionar de dos formas:

  1. Una en la que el sistema va trazando los rayos hasta que desaparecen de escena, se quedan sin energía o el sistema se queda sin potencia suficiente.
  2. Una en la que cada iteración es controlada externamente a través de los Shaders.

En cambio AMD ha optado en su solución por:

  • Una en la que cada iteración es controlada externamente a través de los Shaders.

El RT Core de Nvidia es más avanzado porque tiene el hardware necesario para ir recorriendo todo el arbol BVH de arriba a abajo, en cambio el hardware de AMD no, requiere un mayor control por parte del usuario, eso significa que se ha de utilizar parte de la potencia de las unidades SIMD en gestionar el recorrido. Y no, no es algo que yo me saque de la manga, es algo que lo dice la propia Microsoft.

… los escenarios que tengan una complejidad de shading mínima y/o pocos shaders funcionarán mejor con el inline raytracing.

Esto no lo digo ni me lo invento yo, esto lo dice la propia Microsoft y esto es debido a como AMD ha implementado la unidad de intersección en su hardware (RDNA 2) pero especialmente por el hecho de que seguramente cuando se tomo la decisión estabán limitados en cuanto a espacio en el chip. Personalmente me pensaba que la solución de AMD iba a ser tan compleja como la de Nvidia, pero veo que no… ¿Eso es malo de cara a los juegos? Pues teniendo en cuenta el dominio de AMD en consolas y que debido a eso va a ser el estándar y el hardware de Nvidia soporta el Inline Raytracing ya desde las TU10x pues esta muy claro a donde van a ir las cosas de cara al trazado de rayos en los juegos.

Pero no todo es malo, la ventaja que le ha dado Microsoft al Inline Raytracing es la de que la unidad de intersección puede ser invocada en cualquier tipo de shader, incluidos los Compute Shaders. Esto es ideal para el Ray Tracing Audio y aqui hay algo de lo que me gustaría hablar y es sobre algo que dijo Mark Cerny…

Pe… pero Urian… Si estamos hablando de DirectX 12 Ultimate… ¿Que pinta Sony en esto?

Es solo un pequeño detalle, Cerny puso la siguiente diapositva en su presentación:

Mientras lo iba relatando iba hablando que las funcionalidades que aporta el trazado de rayos y desde el momento en que la arquitectura del hardware gráfico de ambas consolas (PS5 y XSX) es la misma (RDNA 2) y Cerny explica muy bien las cosas vamos allá:

Por supuesto que no es obligatorio utilizar el trazado de rayos, los motores gráficos de PlayStation 4 se ejecutarán bien en PlayStation 5. Pero presenta una oportunidad para aquellos que estén interesados. Estoy pensando en utilizar menos de 1 milón de rayos en un segundo para tener un gran impacto en el Audio, esto debería ser suficiente para la oclusión de audio y algunos cálculos para la reverberación. Con un poco más de la GPU invertido en el trazado de rayos es posible realizar una muy bonita iluminación global. Habiendo dicho esto,añadir sombras y reflejos a un motor gráfico tradicional puede fácilmente tomar cientos de millones de rayos por segundo y el trazado de rayos al completo puede tomar billones (miles de millones).

Mark cerny, road to ps5 presentation

El audio es precisamente lo menos complejo de implementar de todo ello, lo que nos lleva a la respuesta de porque Sony ha creado el «Tempest Engine» que es precisamente por deceso de Compute Units en la GPU. Si la reserva de CUs para Audio en RDNA2 funciona de la misma manera que en las anteriores esto es tomar todas las CUs asociadas con una cache de instrucciones y dejaría a PS5 con solo 34 CUs activas para gráficos en vez de las 36. Microsoft en cambio puede dedicar sin problemas 2 CUs/1 WGP para el audio y seguir teniendo ventaja sobre la competencia en cuanto a rendimiento gráfico

En el podcast de Major Nelson, Jason Ronald quien es director of Xbox program management en Microsoft dijo lo siguiente:

Con la introducción del trazado de rayos acelerado por hardware en la Xbox Series X, podemos hacer capaces un nuevo conjunto de escenarios. Ya sea una iluminación más realista, mejores reflejos, lo podemos utilizar para cosas como «spatial audio» y tener audio por trazado de rayos».

Basicamente la propuesta de utilizar la GPU para mejorar el audio vino de AMD con el TrueAudio Next, es más, Nvidia ya insinuo el Ray Tracing Audio cuando lanzo Turing.

Pero claro, con el DXR 1.0 solo se podía llamar a la unidad de intersección en la etapa correspondiente del pipeline gráfico,no se podía hacer Ray Tracing Audio pero ahora si y es importante tenerlo en cuenta ya que por lo visto Nvidia, AMD en colaboración con Microsoft van a ir al menos en PC contra los fabricantes de hardware dedicado al audio. En todo caso esto no es más que una aplicación de la capacidad del Inline Raytracing de invocar la unidad de intersección en cualquier etapa.

Volviendo a los gráficos, es importante tener en cuenta que el trazado de rayos tiene varias complejidades, la iluminación global a la que se refiere Cerny es el hecho de obtener un rebote de luz adicional respecto a modelo estándar.

La iluminación directa es la que se dio al principio del 3D, simplemente una fuente de luz impacta sobre un objeto y esto no se convierte en un fuente de luz indirecta. No fue hasta la llegada del multitexturizado que utilizo la iluminación indirecta y el próximo paso es la iluminación global que añade ese rebote adicional.

Pero el añadido más importante son las sombras y los reflejos, para ello se requiere que los objetos generen un tipo de rayos especiales llamados Shadow Rays y Reflection Rays que se ejecutan en paralelo. Los Shadow Rays reemplazaran a los que es el sombreado actual y sus limitaciones, los Reflections Rays a los mapas de entorno y sus limitaciones. ¿Que diferencias hay? Tecnicamente sin este último tipo de rayo no es posible representar el comportamiento de la luz sobre ciertos materiales de manera precisa.

En todo caso la generación de los diferentes tipos de rayos dependerá del presupuesto en potencia que exista en cada momento, no vamos a ir al Full Ray Tracing en esta generación ni a finales siquiera porque no hay la potencia suficiente para ello incluso en Xbox Series X. Es mas, vais a ver que en un mismo juego según las escenas se ira conmutando de manera dinámica el uso de tecnicas de rasterizado y de trazado de rayos según la potencia disponible en el sistema.

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

0 0 vote
Article Rating
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Jose Luis

Muy interesante lo que comentas.
Sigue asi.

Jose Luis

Por cierto, Microsoft en la nota de prensa distribuida sobre DX12 ultimate dice que las nuevas caracteristicas son opcionales todos los juegos seguiran funcionando con el hardware antiguo. ———————————————— It is very important to note that DX12 Ultimate will not impact game compatibility with existing hardware which does not support the entire breath of DX12 Ultimate features. In fact, next-generation games which use DX12 Ultimate features will continue to run on non-DX12 Ultimate hardware. Though such hardware won’t provide the visual benefits of the new features, it can still provide a very compelling gaming experience on next generation games, depending… Read more »

Set

Aclarar algo el tema de implementar rayos hasta que salga de un escena o tener un límite no depende del Hardware, si no es a nivel programación y motor. – El Patch Raytracing se caracteriza, por el sample por pixel, cada pixel va lanzando rayos primarios y secundarios de manera ilimitada, hasta que la imagen no tenga ruido, esto requiere mucha potencia y un escena compleja puede necesitar miles de samples, esto solo se hace en películas o imagen, ya que puedes dejar rendirizando la escena minutos, hasta horas. En juegos necesitas minimo 32ms(30fps) y ni en 30años tendriamos una… Read more »

Steven

Hola vulkan implemento Ray Tracing pero usa cpu + gpu

IntelCeleronMasterRace

El punto es, espero que AMD lance un equivalente a una rtx 2070S a menos de 300 verdes, que las consolas van a ASESINAR al pc si salen al precio que todos pensamos. Pero esos exclusivos de mierda y el hecho de ser un sistema cerrado me joden bastante….

Alto post, mostro.

Jorge

Todo OK con lo que dices pero sistema cerrado en parte por los piratas.