Implementación de un raytracer en unidades de procesamiento gráfico utilizando Bounding Volume Hierarchy - Scandolo, Leonardo (2012)
Los métodos de ray tracing permiten generar representaciones gráficas de escenarios tridimensionales con gran calidad, ya que modelan naturalmente sombras, reflexiones y refracciones además de la emisión difusa. Estos algoritmos tienen un costo computacional muy elevado, pero pueden adaptarse para hacer uso del poder de cómputo de arquitecturas masivamente paralelas y de alto rendimiento como las placas gráficas (GPUs). La implementación clásica de estos algoritmos hace uso de técnicas de clasificación geométrica para reducir al mínimo la cantidad de cómputos de intersecciones entre rayos y triángulos. A su vez, los datos de materiales, tales como texturas, deben organizarse coherentemente para reducir los tiempos de lectura. En este trabajo se propone utilizar una clasificación de los datos con un árbol de Jerarquía de Volúmenes (BVH) y se describe su implementación en una arquitectura masivamente paralela. Se presenta un pipeline de procesamiento implementado en OpenCL que permite generar imágenes de alta calidad con tasas de refresco interactivas, y se exponen resultados en resoluciones de 512^2 y 1024^2 píxeles a partir de escenas del orden de 10^5 triángulos.