Renderizado en tiempo real acelerado mediante hardware de ray tracing
Supervisor(es): Fernández, Eduardo - Aguerre, José Pedro
Resumen:
A finales de 2018 la empresa NVIDIA especializada en el desarrollo de unidades de procesamiento gráfico, lanzó al mercado un nuevo producto para computadoras personales. La arquitectura (Turing) utilizada en sus nuevas tarjetas gráficas RTX, facilita la implementación y mejora sustancialmente el rendimiento de algoritmos basados en la técnica de ray tracing. Las técnicas de ray tracing son óptimas para la simulación del comportamiento de la luz y cómo llega a nuestros ojos, siendo este el objetivo más perseguido en computación gráfica para renderizado 3D. Sin embargo, teniendo en cuenta las exigencias de la industria de videojuegos en cuanto a resoluciones de pantalla y cantidad de cuadros por segundo, estas técnicas son virtualmente imposibles de ejecutar únicamente con el hardware específico de aceleración de ray tracing añadido en la arquitectura Turing. Lo que hace viable al ray tracing en esta nueva generación de tarjetas gráficas es el complemento de otros componentes o funcionalidades de la GPU. Por un lado, el procesamiento de imágenes en tiempo real por redes neuronales con la ayuda de Tensor Cores. Y por otro lado, su implementación estratégica en combinación con otras técnicas clásicas de renderizado, que han sido utilizadas por décadas en el hardware de las GPU y permiten mayores optimizaciones. En este proyecto de grado se estudian en profundidad las posibilidades del nuevo hardware de NVIDIA para el desarrollo de ray tracing, así como sus ventajas reales en comparación con el desarrollo en las GPU de generaciones anteriores. También se estudia una de las aplicaciones que utiliza Inteligencia Artificial desarrollada por la misma empresa para el mejorado, denoising y aceleración de la generación de imágenes con ray tracing. Para ello se implementaron tres aplicaciones de ray tracing, que tienen distintos objetivos: ray tracing físicamente realista, ray tracing con denoising basado en IA y ray tracing en tiempo real enfocado para su uso en videojuegos. El código de fuente de este trabajo está publicado en https: // github. com/ manueme/ ray-tracing-research. Como requerimiento para el desarrollo de las aplicaciones que ponen a prueba el hardware estudiado, se debió realizar un análisis sobre la forma en la que se adaptaron las distintas bibliotecas gráficas que acceden al GPU. Se presentan así implementaciones con Vulkan, una biblioteca gráfica de bajo nivel, que hoy en día es parte de los nuevos estándares de la industria en los que debe estar capacitado un desarrollador para acceder y trabajar con las nuevas funcionalidades de trazado de rayos.
2021 | |
Ray tracing Path tracing Render híbrido Hardware gráfico Iluminación global Tiempo real NVIDIA RTX Vulkan Optix denoiser |
|
Español | |
Universidad de la República | |
COLIBRI | |
https://hdl.handle.net/20.500.12008/29892 | |
Acceso abierto | |
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0) |
Sumario: | A finales de 2018 la empresa NVIDIA especializada en el desarrollo de unidades de procesamiento gráfico, lanzó al mercado un nuevo producto para computadoras personales. La arquitectura (Turing) utilizada en sus nuevas tarjetas gráficas RTX, facilita la implementación y mejora sustancialmente el rendimiento de algoritmos basados en la técnica de ray tracing. Las técnicas de ray tracing son óptimas para la simulación del comportamiento de la luz y cómo llega a nuestros ojos, siendo este el objetivo más perseguido en computación gráfica para renderizado 3D. Sin embargo, teniendo en cuenta las exigencias de la industria de videojuegos en cuanto a resoluciones de pantalla y cantidad de cuadros por segundo, estas técnicas son virtualmente imposibles de ejecutar únicamente con el hardware específico de aceleración de ray tracing añadido en la arquitectura Turing. Lo que hace viable al ray tracing en esta nueva generación de tarjetas gráficas es el complemento de otros componentes o funcionalidades de la GPU. Por un lado, el procesamiento de imágenes en tiempo real por redes neuronales con la ayuda de Tensor Cores. Y por otro lado, su implementación estratégica en combinación con otras técnicas clásicas de renderizado, que han sido utilizadas por décadas en el hardware de las GPU y permiten mayores optimizaciones. En este proyecto de grado se estudian en profundidad las posibilidades del nuevo hardware de NVIDIA para el desarrollo de ray tracing, así como sus ventajas reales en comparación con el desarrollo en las GPU de generaciones anteriores. También se estudia una de las aplicaciones que utiliza Inteligencia Artificial desarrollada por la misma empresa para el mejorado, denoising y aceleración de la generación de imágenes con ray tracing. Para ello se implementaron tres aplicaciones de ray tracing, que tienen distintos objetivos: ray tracing físicamente realista, ray tracing con denoising basado en IA y ray tracing en tiempo real enfocado para su uso en videojuegos. El código de fuente de este trabajo está publicado en https: // github. com/ manueme/ ray-tracing-research. Como requerimiento para el desarrollo de las aplicaciones que ponen a prueba el hardware estudiado, se debió realizar un análisis sobre la forma en la que se adaptaron las distintas bibliotecas gráficas que acceden al GPU. Se presentan así implementaciones con Vulkan, una biblioteca gráfica de bajo nivel, que hoy en día es parte de los nuevos estándares de la industria en los que debe estar capacitado un desarrollador para acceder y trabajar con las nuevas funcionalidades de trazado de rayos. |
---|