El trazado de rayos en tiempo real aplicado a juegos se está imponiendo como una realidad, si bien su uso está dejando bastante que desear en términos de rendimiento. Pero eso no evita que Nvidia presentara el año pasado las GeForce RTX con núcleos específicos para trazado de rayos, y el siguiente paso que se esperaba es que anunciara su implementación para las GeForce GTX. En su conferencia de la GTC ha anunciado que llevará en abril el trazado de rayos a las GeForce 10 y GeForce 16.
La interfaz de programación de aplicaciones (API) que usa Nvidia para implementar el trazado de rayos en las GeForce se llama RTX, y colaboró con Microsoft para llevarlo a DirectX 12 en forma de DirectX Raytracing (DXR), por lo que es un sistema de mejora visual abierta a otros fabricantes. Y quien dice las tarjetas gráficas Pascal y Turing sin núcleos específicos, dice AMD y sus Radeon, o Intel y sus futuras tarjetas gráficas. Nvidia ya mostró comparativas entre Pascal y Turing en demos de trazado de rayos por lo que internamente lo tenían funcionando sobre los chips de arquitectura Pascal, y solo era cuestión de tiempo que la compañía hiciera este anuncio.
Pero obviamente que llegue el trazado de rayos a estas tarjetas gráficas no significa que llegue toda la API de trazado de rayos o que sea recomendable usarla íntegramente. Nvidia recomienda que los desarrolladores se atengan a implementar solo los efectos de trazado de rayos más sencillos como son los reflejos. De ahí que cuando Crytek ha mostrado hace unos días funcionando el trazado de rayos en una RX Vega 56 dijera que era viable sin una gran pérdida de rendimiento era evidente que en el vídeo solo estaba implementado para los reflejos. El trazado de rayos en tiempo real es viable en las tarjetas gráficas sin núcleos de trazado de rayos, pero tema a parte es la pérdida de rendimiento que ello provoca.
Los actuales sistemas de reflejos en motores gráficos no distan mucho de como se harían con trazado de rayos, y por tanto en términos de computación es factible implementar estos reflejos mediante TR en las tarjetas gráficas sin unidades de cómputo específicas para trazado de rayos. Nvidia desaconseja implementar iluminación global para las GeForce GTX, que es precisamente lo que se echaba de menos en la demo de Crytek por la simpleza de las sombras del dron —ved el vídeo si no lo habéis hecho todavía—.
Esto también significa que, además de solo poder representar efectos sencillos, solo lo podrán hacer con una baja cuenta de rayos por fotograma, quizás uno o dos por escena, si no se quiere hundir el rendimiento hasta lo injugable. Los rayos de luz en iluminación global determinan el número de fuentes que generan iluminación en la escena, que afecta al aspecto de todo en la misma, desde reflejos hasta las sombras. Pero en este terreno de querer implementar iluminación global en Metro Exodus, Nvidia habla de que un chip Turing RTX tiene un rendimiento tres veces mayor que un Turing sin RTX, y unas cinco veces más que un chip Pascal, como se ve en la imagen superior.
Incluso llega a poner ejemplos en juegos, indicando que de Pascal con una GTX 1080 Ti a una RTX 2080 con trazado de rayos en Battlefield V en calidad ultra y QHD se gana un 60 % de rendimiento al usar el trazado de rayos en tiempo real, dejándolo en unos 45 FPS en lugar de cerca de 75 FPS. Parte de los efectos se perderán al no permitirse en la GeForce RTX, por lo que aun así es una comparación de peras con manzanas.
Sea como sea, el trazado de rayos va a llegar para quedarse, y además de en el CryEngine se implementará en Unreal y Unity, entre otros, así como en las bibliotecas gráficas DirectX 12 y Vulkan.
Vía: AnandTech.