Tracing en tiempo real con GP-GPUs



Ray Tracing en tiempo real con GP-GPUs

Carlos Daniel Venegas Tamayo
 

Texto completo de la Tesis     

 



Resumen

 

Desde tiempos inmemoriales, el ser humano se ha visto en la necesidad de expresar sus ideas en forma de imágenes. Esta necesidad ha llevado al hombre a la creación de imágenes asistiéndose de la tecnología, desde lápices hasta el uso de supercomputadoras. Recientemente, se ha visto una proliferación de contenidos audiovisuales 3D creados por computadora. Estos contenidos los podemos encontrar en varios campos como la industria del entretenimiento, el diseño de interiores, la medicina y la química; por consiguiente, es de interés tener contenidos cada vez mas realistas. Crear estos contenidos 3D conlleva todo un proceso que consiste, a grandes rasgos, en la creación de modelos 3D, especi ficación de materiales y fuentes de iluminación, síntesis de imágenes y finalmente, si hace falta, la post producción. Dentro de este proceso creativo, la síntesis de imágenes requiere de un algoritmo computacional, de entre los cuales existen el rasterizado y el ray tracing. El ray tracing en espec ífico es capaz de generar imágenes de gran calidad; sin embargo, tiene un costo computacional muy elevado. Recientemente ha surgido la necesidad de tener imágenes realistas en tiempo real, esto representa un problema debido a las afi rmaciones del párrafo anterior. El tiempo real (en computación gráfica) consiste en la generación rápida de imágenes, y es el área mas interactiva de la computación gráfica. Una imagen es proyectada en la pantalla, el espectador reacciona o actúa y la retroalimentación afecta lo próximo que será generado. La tasa de imágenes desplegadas es medida en frames por segundo (fps) o hertz (Hz), un mínimo de 15 fps podrá considerarse como tiempo real [1]. Este problema se ha atacado de diversas formas, desde clusters de CPUs hasta la creación de hardware dedicado. Estas soluciones implican un costo monetario y de consumo energético muy elevado que no es rentable para la mayoría de los usuarios. Una alternativa por la que se ha optado es el uso de GPUs, pues se ha observado que el modelo de trabajo que presenta el ray tracing es altamente paralelizable y se puede adaptar a una arquitectura de SIMD (Single Instruction Multiple Data) que es la arquitectura que manejan las GPUs. Esta tesis se enfoca en implementar el algoritmo de ray tracing en paralelo utilizando GPUs teniendo como hipótesis que es posible alcanzar el tiempo real. También se pretende adaptar una estructura aceleradora para el mismo algoritmo que disminuye el tiempo de ejecución considerablemente.