Author:
Dirk Feldmann
Affiliation:
Fraunhofer IOSB, Germany
Keyword(s):
Ray Tracing, R-Tree, Acceleration, Spatial Index, GPU, CUDA, Stackless Algorithm.
Related
Ontology
Subjects/Areas/Topics:
Computer Vision, Visualization and Computer Graphics
;
High-Performance Computing and Parallel Rendering
;
Rendering
;
Rendering Algorithms
Abstract:
Efficient ray tracing for rendering needs to minimize the number of redundant intersection tests between rays and geometric primitives. Hence, ray tracers usually employ spatial indexes to organize the scene to be rendered. The most popular ones for this purpose are currently kd-trees and bounding volume hierarchies, for they have been found to yield best performances and can be adapted to contemporary GPU architectures. These adaptations usually come along with costs for additional memory or preprocessing and comprise the employment of stackless traversal algorithms.
R-trees are height-balanced spatial indexes with a fixed maximum number of children per node and were designed to reduce access to secondary memory. Although these properties make them compelling for GPU ray tracing, they have not been used in this context so far.
In this article, we demonstrate how R-trees can accelerate ray tracing and their competitiveness for this task. Our method is based on two traversal schemes t
hat exploit the regularity of R-trees and forgo preprocessing or alterations of the data structure, with the first algorithm being moreover stackless. We evaluate our approach in implementations for CPUs and GPUs and compare its performance to results we obtained by means of kd-trees.
(More)