La tecnología de trazado de rayos, una de las técnicas más habituales en la creación de escenas infográficas de alta calidad, llegará próximamente a los juegos de PC y en tiempo real de la mano de DirectX. Este avance gráfico, potencialmente uno de los más significativos de los últimos años, ha sido anunciado por Microsoft durante la conferencia GDC 2018, donde ha dado a conocer una nueva API llamada API DirectX Raytracing.
Si bien el raytracing es una técnica bastante familiar para el público "entendido", este nombre carece de significado para gran parte de los jugadores. Podríamos verlo como una forma distinta de generar una imagen 3D compuesta por los mismos modelos y texturas, pero potencialmente con muchísima más calidad.
Vídeo demostrativo publicado por Remedy.
Actualmente el renderizado de imágenes 3D en tiempo real se realiza mediante el proceso de rasterización, que básicamente reduce la cámara a un plano 2D en forma de rejilla de píxeles sobre la cual se proyecta una imagen tridimensional. Si bien no es una técnica muy elegante, su gran velocidad de procesado hace posible su utilización fluida en todo tipo de hardware, supliendo sus deficiencias con técnicas como el uso de shaders.
El raytracing, por su parte, funciona de una forma radicalmente distinta. Explicado de forma muy simple, en esta técnica cada píxel es un rayo invisible emitido por la cámara, que se convierte en un punto de color cuando incide sobre un objeto tridimensional. Se trata de un enfoque mucho más global, pero brutalmente más costoso en términos de velocidad. Por su funcionamiento (aunque técnicamente sea al revés), el trazado de rayos es vulgarmente asemejado al ojo humano.
Diagrama explicativo de la técnica de trazado de rayos. Imagen: Henrik, CC BY-SA 4.0.
El procesamiento del raytracing permite generar escenas de gran realismo, especialmente si hablamos de imágenes estáticas y/o con efectos de iluminación muy sutiles. Por este motivo es habitualmente utilizado en arquitectura.
Realizada esta breve descripción, el asunto es que el raytracing no es una técnica que pueda ser implementada fácilmente en videojuegos, puesto que un único fotograma con una calidad elevada podría requerir horas de trabajo. Y aunque parezca una paradoja, las tarjetas gráficas actuales no son muy buenas a la hora de trabajar con el trazado de rayos. Sin embargo, los modelos modernos son muy programables, por lo que Microsoft piensa aprovechar esta flexibilidad para introducir funciones de raytracing en futuros juegos vía DirectX.
Imágenes generadas mediante raytracing distribuidas por Nvidia.
Nvidia se sube al carro con la tecnología de aceleración RTX para Volta
La API desarrollada por Microsoft define las características de software que una tarjeta gráfica debe soportar para poder sacar partido a DirectX Raytracing, que funcionará sobre componentes certificados para DirectX 12. El hardware anterior a Volta podrá aprovechar sus características mediante software, pero Nvidia, que ha estado trabajando con Microsoft durante el desarrollo de la API, también ofrecerá soporte por hardware para Volta mediante RTX.
RTX es la tecnología de Nvidia que permitirá la aceleración de DirectX Raytracing en las máquinas dotadas con una tarjeta GeForce de nueva generación. Todavía no está claro qué apartados se podrán aprovechar de esta ventaja, pero la idea es que los ordenadores con una tarjeta Volta (cuyo motor raytracing había permanecido oculto hasta ahora) podrán brindar un mayor rendimiento.
Vídeo demostrativo de PICA PICA (EA Seed) sobre DirectX Raytracing.
A nivel de middleware, Unity, Frostbite, Allegorithmic y Unreal Engine serán actualizados para incorporar soporte para DirectX Raytracing. Sus desarrolladores, de hecho, ya han publicado algunas de las primeras demos en forma de vídeo.
Es necesario señalar que el raytracing sigue siendo una técnica muy costosa en términos de recursos. Por este motivo lo más probable es que la implementación a través de DirectX sea parcial y destinada a mejorar principalmente aquellos aspectos donde su uso puede redundar en efectos de mayor calidad, tal es el caso de la proyección de sombras, la oclusión ambiental y los reflejos.
Introducción a la técnica del raytracing.
Nvidia, con el anuncio de RTX, ha tomado la delantera en la adopción a nivel de hardware de esta novedosa tecnología. Ha estado muy viva, aunque es justo decir que AMD también está trabajando en alguna clase de implementación. El fabricante de las tarjetas Radeon, no obstante, aún ha de presentar su propia tecnología de aceleración. En este sentido la compañía ha emitido el siguiente comunicado:
Asimismo, AMD ofrecerá una charla sobre raytracing en tiempo real utilizando motores actuales en la GDC 2018. Tal vez entonces tengamos más detalles sobre cómo manejarán sus tarjetas la nueva API de Microsoft.
Si bien el raytracing es una técnica bastante familiar para el público "entendido", este nombre carece de significado para gran parte de los jugadores. Podríamos verlo como una forma distinta de generar una imagen 3D compuesta por los mismos modelos y texturas, pero potencialmente con muchísima más calidad.
Actualmente el renderizado de imágenes 3D en tiempo real se realiza mediante el proceso de rasterización, que básicamente reduce la cámara a un plano 2D en forma de rejilla de píxeles sobre la cual se proyecta una imagen tridimensional. Si bien no es una técnica muy elegante, su gran velocidad de procesado hace posible su utilización fluida en todo tipo de hardware, supliendo sus deficiencias con técnicas como el uso de shaders.
El raytracing, por su parte, funciona de una forma radicalmente distinta. Explicado de forma muy simple, en esta técnica cada píxel es un rayo invisible emitido por la cámara, que se convierte en un punto de color cuando incide sobre un objeto tridimensional. Se trata de un enfoque mucho más global, pero brutalmente más costoso en términos de velocidad. Por su funcionamiento (aunque técnicamente sea al revés), el trazado de rayos es vulgarmente asemejado al ojo humano.
El procesamiento del raytracing permite generar escenas de gran realismo, especialmente si hablamos de imágenes estáticas y/o con efectos de iluminación muy sutiles. Por este motivo es habitualmente utilizado en arquitectura.
Realizada esta breve descripción, el asunto es que el raytracing no es una técnica que pueda ser implementada fácilmente en videojuegos, puesto que un único fotograma con una calidad elevada podría requerir horas de trabajo. Y aunque parezca una paradoja, las tarjetas gráficas actuales no son muy buenas a la hora de trabajar con el trazado de rayos. Sin embargo, los modelos modernos son muy programables, por lo que Microsoft piensa aprovechar esta flexibilidad para introducir funciones de raytracing en futuros juegos vía DirectX.
Nvidia se sube al carro con la tecnología de aceleración RTX para Volta
La API desarrollada por Microsoft define las características de software que una tarjeta gráfica debe soportar para poder sacar partido a DirectX Raytracing, que funcionará sobre componentes certificados para DirectX 12. El hardware anterior a Volta podrá aprovechar sus características mediante software, pero Nvidia, que ha estado trabajando con Microsoft durante el desarrollo de la API, también ofrecerá soporte por hardware para Volta mediante RTX.
RTX es la tecnología de Nvidia que permitirá la aceleración de DirectX Raytracing en las máquinas dotadas con una tarjeta GeForce de nueva generación. Todavía no está claro qué apartados se podrán aprovechar de esta ventaja, pero la idea es que los ordenadores con una tarjeta Volta (cuyo motor raytracing había permanecido oculto hasta ahora) podrán brindar un mayor rendimiento.
A nivel de middleware, Unity, Frostbite, Allegorithmic y Unreal Engine serán actualizados para incorporar soporte para DirectX Raytracing. Sus desarrolladores, de hecho, ya han publicado algunas de las primeras demos en forma de vídeo.
Es necesario señalar que el raytracing sigue siendo una técnica muy costosa en términos de recursos. Por este motivo lo más probable es que la implementación a través de DirectX sea parcial y destinada a mejorar principalmente aquellos aspectos donde su uso puede redundar en efectos de mayor calidad, tal es el caso de la proyección de sombras, la oclusión ambiental y los reflejos.
Nvidia, con el anuncio de RTX, ha tomado la delantera en la adopción a nivel de hardware de esta novedosa tecnología. Ha estado muy viva, aunque es justo decir que AMD también está trabajando en alguna clase de implementación. El fabricante de las tarjetas Radeon, no obstante, aún ha de presentar su propia tecnología de aceleración. En este sentido la compañía ha emitido el siguiente comunicado:
AMD está colaborando con Microsoft para ayudar a definir, perfeccionar y respaldar el futuro de DirectX12 y el trazado de rayos. AMD se mantiene a la vanguardia del nuevo modelo de programación y la innovación de la interfaz de programación de aplicaciones (API), basado en unos cimientos avanzados a nivel de sistema para la programación de gráficos. Estamos ansiosos por tratar con los desarrolladores de juegos sus ideas y comentarios relacionados con las técnicas de trazado de rayos basadas en PC para obtener calidad de imagen, oportunidades de efectos y rendimiento.
Asimismo, AMD ofrecerá una charla sobre raytracing en tiempo real utilizando motores actuales en la GDC 2018. Tal vez entonces tengamos más detalles sobre cómo manejarán sus tarjetas la nueva API de Microsoft.
Ahora que está empezando a funcionar Vulkan un poco mejor en Linux se sacan otra API para directX jajaja
El futuro de los juegos en Linux es el dualboot (-_-)U
O sea, lineas curvas perfectas?
A pedales no, a vela.
El usuario soplará para darle impulso [carcajad]
No tiene nada que ver. El modelo es el mismo, ya tenga muchos o pocos polígonos. Lo que hace es plasmar la imagen en un proceso de rayos (a rayo por píxel visible) en lugar de volcándolo en una rejilla 2D para generar la imagen que tenemos en pantalla.
Es un poco complicado de explicar sin hacer el asunto aún más largo y retorcido, pero digamos que es un proceso "más 3D" en la forma en la que trata toda la información visual antes de generarla para nuestros ojos.
Es el mismo cantar cada que anuncian una implementacion nueva, muestran la meta que todo se ve muy bonito, y con el paso del tiempo se ve que primero lo disponible con el anuncio no existe, y conforme se acercan a la meta, el resultado no es exactamente como lo vendieron. El teselado por ejemplo, sigue comiendose una buena parte de los recursos y verlo en accion es un poco triste.
Ya mismo vemos a Intel vendiendo coprocesadores que le echen una mano a la GPU en paralelo con un i7 de 12 núcleos jajaja
Uff, el video demostrativo de pica pica si es un motor en tiempo real es un alucine...
https://twitter.com/XboxP3/status/43967 ... 51425?s=20
Posiblemente alguna vez será la buena, pero hasta que no vea nada concreto me mantendré "razonablemente escéptico" ;)
@supremegaara ¿Me he perdido algo? ¿Que tiene que ver la noticia con lo que comentas?
Saludos
Ahí radica la importancia de la implementación de Nvidia.
Tienes razón e. Que es demasiado costoso pero porque hasta ahora se ha hecho por software.
Sin embargo volta viene con los tensor cores, estos se usan para el Deep learning y esa especie de inteligencia artificial capaz de aprender será la que calculará y predecira el curso de cada rayo.
Al hacerse por hardware por fin es posible hacerlo en tiempo real, Nvidia lo enseño en un video.