Mejoramiento de mallas de triángulos usando GPU
Professor Advisor
Abstract
Una malla triangular es un modelo de representación de objetos que consiste en un conjunto de vértices, caras (triángulos) y lados (aristas). Estas mallas son muy usadas en computación gráfica y en simulaciones numéricas. Estas mallas pueden no ser suficientemente buenas como para poder realizar cálculos sobre ellas, dado el riesgo de propagar errores, cuando los triángulos que conforman estas mallas son demasiado delgados.
Para mejorar/refinar los triángulos que se consideran de mala calidad existen distintos algoritmos, tales como Lepp-Bisección, Lepp-Delaunay o Lepp-Centroide, que hasta ahora solo tienen implementaciones en CPU (ya sean secuenciales o multi-core). El concepto de Lepp (Longest-Edge Propagation Path) consiste en comenzar con un triángulo de la malla, ir hacia el triángulo vecino
por su arista más larga sucesivamente, hasta llegar a la última arista más larga que tienen los triángulos en común, llamada arista terminal.
El objetivo de esta memoria es diseñar e implementar una solución mixta que usa tanto GPU (parte paralela) y CPU (parte secuencial) para el algoritmo Lepp-Centroide, de tal forma de poder explorar las posibilidades que ofrece la GPU en el mejoramiento y refinamiento de mallas.
Para cumplir con este objetivo se implementó la aplicación QLepp2D, la cual consiste en la unión de una biblioteca (QLepp2D-lib) y una interfaz gráfica (QLepp2D-gui) que permiten al usuario cargar una triangulación y mejorarla/refinarla de manera rápida y simple, utilizando el poder que ofrece la biblioteca de OpenCL para paralelizar este procesamiento.
QLepp2D-lib está escrita en C++ y OpenCL 1.2. Esta biblioteca puede ser instalada en el sistema y ser usada por otros programas. QLepp2D-gui está escrita usando Qt y utiliza QLepp2D-lib como demostración de la facilidad de uso de esta biblioteca. Adicionalmente, es posible portar la interfaz a distintos idiomas, por lo que es posible utilizarla en distintos sistemas, traduciendo la aplicación de forma automática.
Con esta aplicación es posible conseguir el mejoramiento/refinamiento de mallas de triángulos con una velocidad más de 2 veces superior para el procesamiento completo y más de 400 veces superior para el algoritmo del método más rápido, además de demostrar el poder de OpenCL para adaptarse a cualquier dispositivo que posea una implementación disponible.
General note
Memoria para optar al título de Ingeniero Civil en Computación
Patrocinador
Proyecto Fondecyt Nº 1181506
Identifier
URI: https://repositorio.uchile.cl/handle/2250/169986
Collections
The following license files are associated with this item: