Hace unos días en el podcast de IGN se hacían la siguiente pregunta: ¿Dónde está al Ray Tracing en los juegos para las consolas de nueva generación?
Y aquí tenemos que hablar del elefante en la habitación, que no es otro que la implementación en cuanto a hardware para el trazado de rayos en AMD es deficiente en comparación con su equivalente en NVIDIA y no hablo de comparar las RX 6000 frente a las RTX 30 no, es peor incluso que el de las RTX 20 que salieron en 2018 para PC y el departamento dirigido por David Wang ha tenido dos años y la ventaja de saber lo que tenían que hacer para tener una buena solución de cara al Ray Tracing.
En HardZone hice un artículo explicando el origen técnico del problema que no es otra que el hecho que la implementación en hardware no es lo suficientemente buena. Aunque lo que nos interesa como usuarios es el rendimiento y ayer en Digital Foundry sacaron una comparativa de Forza Horizon 5 en PC donde se puede ver como afecta al rendimiento la aplicación del trazado de rayos, aunque realmente lo han hecho aplicando un mod al juego original para que se pueda aplicar el trazado de rayos en carrera.
¿Los resultados? En una RTX 3080 el coste de añadir el Ray Tracing en una escena a 4K es de 1,7 milisegundos, en cambio en una RX 6800 XT el tiempo aumenta hasta los 2,9 ms. Hemos de partir de la base que ambas GPU de PC son mucho más potentes que lo que montan las consolas de nueva generación, por lo que ese tiempo tanto en Xbox Series X aumentaría mucho más que esos 2,9 ms.
¿Qué es lo que pienso del Ray Tracing en la nueva generación? Pues que no tenían pensado aplicarlo, es más, pienso que su añadido a última hora en PlayStation 5 es un caso muy a lo SEGA Saturn. No olvidemos que la GPU recibió un cambio de última hora para integrarlo, pero extrañamente PS5 no soporta el resto de tecnologías que AMD añadió en RDNA 2. ¿Por qué implementar el Ray Tracing? Pues por el hecho que solo tenían que reemplazar la unidad de texturas por la nueva que a la vez hace de unidad para el cálculo de la intersección.

Dicho de otra forma, mientras NVIDIA tiene una unidad para texturas y otra para intersección, AMD decide hacer un 2 x 1. ¿El motivo? Añadir una unidad más significa volver a cablear y reorganizar toda la Compute Unit y con ello en consecuencia toda la GPU. Ahora bien, RDNA 2 en PC no es más que una mejora sobre RDNA para aplicar las funciones de DirectX 12 Ultimate como los Mesh Shaders, el Variable Rate Shading e incluso el DirectStorage. SONY en PS5 utiliza su propia API gráfica y ha decidido escoger su propio Stack, el cual ya era proveído por RDNA 1, pero el Ray Tracing requiere hardware nuevo en forma de unidad de cálculo de la intersección y su implementación es tan sencilla como reemplazar una pieza por otra.
Ahora bien, el Ray Tracing no solo lo ejecuta la unidad de intersección de rayos, es mucho más complejo que eso y aplicarlo requiere una potencia adicional muy grande. El hecho de que no se aplique en algunos juegos se puede saber aplicando la navaja de Occam, eso de que la explicación más sencilla es la más correcta y esta no es otra que: falta de potencia tanto en PS5 como en Xbox Series X, de ahí a que los desarrolladores lo descarten en sus juegos. Por el simple hecho que han de hacer recortes importantes en rendimiento o el resultado obtenido no les es artísticamente satisfactorio.
De paso aprovecharé para responder una de las preguntas que me hicisteis.
¿Qué quiere decir Microsoft cuando en su presentación del Hot Chips dijo que en Xbox Series X el RT y los shaders corrían en paralelo?
En el Ray Tracing los shaders no pueden correr en paralelo por el hecho que este utiliza shaders, por lo que lo has entendido mal.

En DirectX Ray Tracing así como en cualquier otra API gráfica similar se utilizan varios shaders:
- Uno para invocar la creación del rayo (Ray Generation Shader)
- Otro para calcular la intersección del rayo con la estructura de datos que representa la escena. Este trabajo lo hacen realmente la unidad de intersección.
- Dependiendo del resultado obtenido se ejecuta uno de estos shaders: Any-Hit Shader para objetos semitransparentes, Closest-Hit Shader para objetos opacos, Miss Shader por si no hay existe una colision.
Es más, en el Hot Chips Microsoft deja claro que su consola ha heredado la paupérrima unidad de intersección de AMD.

¿Cómo lo sé? Por lo que dice el cuarto punto «4 operaciones de texturas o de rayo por ciclo de reloj por Compute Unit», por lo que la unidad está conmutada y por tanto no puede hacer ambas cosas al mismo tiempo. En todo caso AMD ya describió como funciona el Ray Tracing en sus GPU en una patente de 2019.

En realidad NVIDIA pillo a AMD con los pantalones bajados y el marketing fue tan bestia que se vieron forzados a realizar una implementación mínima. Sumadle a esto que estaba encima de la mesa por parte de Microsoft para sus Xbox al tener que soportar todas las funciones de DirectX 12 Ultimate y tenemos la tormenta perfecta para hacer algo con prisas. En todo caso el uso de una unidad de texturas para hacer el cálculo de la intersección para el trazado de rayos no es nuevo y el hardware de ambas unidades es muy similar, la única diferencia es la detección de colisiones.
En todo caso pese a que la función está ahí no es lo suficientemente buena como para utilizarla masivamente, por suerte la implementación de la Ray Acceleration Unit ha costado tan poco en términos de área del chip que quitarla no aporta nada realmente. ¿Qué hubiese hecho yo? Hubiese implementado un equivalente a un Tensor Core para algo estilo DLSS, hubiese sido más útil, pero no estaba en el porfolio de AMD.
El DLSS lo sacó Nvidia a la vez que el raytracing precisamente para poder soportarlo sin impacto en el rendimiento. La idea de dividir la resolución nativa es dividir el coste del raytracing, y con lo que te ahorras de tiempo de fotograma para lo demás, costeas el raytracing.
Da lo mismo si es checkerboard o FSR, la idea es la misma.
Todo esto lo que nos dice es que en ningún momento se ha planteado el raytracing en consolas sin sacrificios, claro que hay que hacerlos, pero son los mismos que ya se hacen en pc.
Así que por supuesto que es viable en consolas. Pero al igual que en PC, sería un desperdicio a la resolución nativa.
Me gustaMe gusta
exacto ..
aun asi las consolas sin dlss presisamente mas ps5 estan usando un raytracing en sus 1º año d evida muy bueno..
no se que podra una 2080 o una 2070 o una 3080.. en teorico lo que quiera urian y ls expertos
pero bajo mi opinion no hay nada en el emrcado mas bestia que mas morales en tema raytracing y ratchet tb otro que tal va… ni en pc con su 3090… me imagino que alguno habra juego que no conozca… pero de masas.. de los que conoce todo el mundo, con la mierda Rt que tieen ps5.. los juegos mas brutos con rt estan en ps5
el FSR aun no siendo dlss2.0, las consolas cuando empiecen a usarlo para mejorar el RT se va a notar y podran usar mas y mejor RT en los jugos con mas FPS, y si ya ps5 hace lo que hace no me imagino ps5 con RT y FSR, un mas morales, con 60fps con mas resolucion usando FSR y con mejor RT , mejor del que ya tiene y mas cantidad.. del que ya tiene
el proximo en ver como se usa Rt sera GT7 y horizons 2.. en el tema sony en este caso y vermos si usan FSR o no
con la mierda Rt que tiene ps5 , contento estoy la verdad de su rendimiento.. ojala fuera mejor.. pero ya sabemos los recortes que se han hecho en estas cosnolas por tema tiempo, prisas y para cumplir precios a vender, bastante bien rinde para lo que son
Me gustaMe gusta
«En el Ray Tracing los shaders no pueden correr en paralelo por el hecho que este utiliza shaders, por lo que lo has entendido mal».
Por lo que recuerdo de lo que vi en su momento, creo que lo ha entendido bien:
Es una arquitectura diferente de la de nvidia. Con nvidia los shaders se quedan parados esperando a que la parte de raytracing haga su trabajo, mientras que en AMD se comparten recursos de hardware, se pierde rendimiento y se gana flexibilidad, y se hace en paralelo repartiendo la carga como estimen oportuno. Tiene pros y contras respecto al planteamiento de Nvidia, que sacrifica área de shaders.
Me gustaMe gusta
Para vender consolas decir que tienen ray tracing es mejor,.
Me gustaMe gusta
Como se tiraban lo Fanboy de Sony, cuando le decias que su PS5 a nivel de arquitectura era RDNA1 ,y te decian que era FUD XD, ahora ya se usa de manera mas generalizada por lo que veo.
En realidad el RT tampoco estan malo comparado con el de Nvidia, la mayoria de juegos anda en torno a los 30% con eso que AMD implemento el tema de wave32 en los drivers. La unica diferencia de los RA y los RT Core, es que los RA no tienen unidad para recorrer el BVH lo hacen los CU(FP32).
El Ray Tracing en consolas es viable, pero actualmente estamos entrasicion y muchos desarrolladores tendran que aprender jugar con el tema de optimizar(recortar), las consolas por ejemplo no podran manejar renderizado full resolución en reflejos o GI por ejemplo, tendran que hacerlo mitad de resolución o un cuarto para ganar rendimiento, temas de jugar con los materiales, los bounces sencundarios etc .
Por ejemplo años depues los de 4games aprendieron usar rebotes infinitos en su GI en Metro Exodus atravez de usar el truco de un fotograma previo, esto aumento en gran medida la calidad de GI en Metro Enhacend con un costo gratis.
Porque Halo no usa RT ,porque es un juego pensando para xbox one, conforme se vaya comodando los desarrolladores en la next gen veremos mas juegos con efectos RT.
Me gustaMe gusta