Publication:
Construcción de estructuras espaciales en GPU

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2012
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
Ray tracing es una técnica de renderizado de imágenes que consigue efectos realistas mediante la simulación de la luz con refracción, reflexión y sombras en una escena con objetos 3D. Para hacer eficiente el cálculo de la primera intersección de cada rayo de luz con los objetos de la escena se emplean estructuras jerárquicas para descartar objetos en esa búsqueda. Entre las estructuras jerárquicas, una de las más comunes es el kd-tree, un tipo de estructura arbórea que divide el espacio en regiones, y cuyos nodos engloban regiones que se dividen en sus hijos. La construcción de kd-trees suele hacerse de manera “top-down”. Se parte del nodo raíz que contiene todos los objetos de la escena y se computa un plano que divida la escena en dos partes, una para cada hijo. La búsqueda del plano de corte es clave para crear un kd-tree “óptimo”. La mejor medida para encontrarlo es empleando una heurística, la “Surface Area Heuristic” (SAH), que se basa en el cociente de dos superficies, la de la caja que envuelve el nodo y la de la caja de la raíz. En este trabajo se construyen kd-trees en GPU (Graphics Processing Unit) de forma parecida a como han hecho recientemente en Wu et al. [WZL11]. Para construir buenos kd-trees, en ese trabajo se propone el uso de la SAH exacta para todos los niveles del árbol, que se caracteriza por tomar como planos candidatos de corte los lados de las cajas que envuelven los objetos del nodo. El modelo de programación de CUDA permite la creación de programas paralelos de propósito general en GPUs de NVidia. Mientras que las máquinas paralelas en CPU tienen entre 2 o 16 núcleos, en la GPU hay cientos de núcleos, que requieren gran cantidad de trabajo para aprovechar sus recursos. La construcción de kd-trees se puede adaptar a este modelo, consiguiendo tiempos de ejecución tan bajos que permiten su aplicación sobre escenas dinámicas en tiempo real. [ABSTRACT] Ray tracing is a rendering technique that achieves realistic effects by simulating light with refraction, reflection and shadows, in a scene with 3D objects. In order to accelerate the computation of the first intersection for each ray of light with the objects in the scene, hierarchical structures are used to discard objects in that search. Among the hierarchical structures, one of the most common is the kd-tree, a tree structure that divides the space into regions, and whose nodes comprise regions that are divided into their children. The construction of Kd-tree is usually done in a “top-down” manner. It starts from the root node, which contains all the objects in the scene and computes a plane that divides the scene into two parts, one for each child. The search of a cutting plane is the key to create a good kd-tree. The best approach is to use a heuristic, the “Surface Area Heuristic” (SAH), which is based on the ratio of two surfaces, one related to the box enclosing the node and another one related to the root. In this document I present an implementation on GPU (Graphics Processing Unit) for the construction of kd-trees, which is similar to the algorithm proposed by Wu et al. [WZL11]. To build good kd-trees, Wu et al. use the exact SAH for all levels of the tree, which considers as candidate cutting planes the sides of the boxes enclosing the objects. The CUDA programming model allows the creation of parallel programs for general purpose problems in NVidia’s GPUs. While CPU parallel machines have from 2 to 16 cores, in the GPU there are hundreds of cores, which require large amounts of work to exploit their resources. The construction of kd-trees can take advantage of this model, with runtimes so low that its application on dynamic scenes is possible.
Description
Máster en Investigación en Informática, Facultad de Informática, Departamento de Sistemas Informáticos y Computación, curso 2011-2012
UCM subjects
Unesco subjects
Keywords
Citation