Theoretical and experimental aspects of ray shooting

  • Authors:
  • Allen Yao-Hung Chang

  • Affiliations:
  • -

  • Venue:
  • Theoretical and experimental aspects of ray shooting
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The ray shooting problem arises in many different contexts mid is a bottleneck of ray tracing in computer graphics and radio propagation simulation wireless communications among others. Unfortunately, theoretical solutions to the problem are not very practical, while practical methods offer few provable guarantees on performance. The two main obstacles appear to be identifying the correct measures of problem complexity and designing algorithms which adapt naturally to the complexity of a problem instance. We start by reviewing the data structures and traversal algorithms commonly used for ray tracing in practice. Attempting to combine practicality with theoretical soundness, we then show how to provably measure the average performance of any ray-shooting method based on traversing a bounded-degree spatial decomposition, where the average is taken to mean the expectation over the uniform ray distribution. A simplification yields a simple, easy-to-compute cost predictor that estimates the average performance of ray shooting without running the actual algorithm. We experimentally show that this predictor provides an accurate estimate of the efficiency of executing ray-shooting queries in several spatial decomposition-based data structure and of the criteria used to construct the data structures. The performance of all of the spatial decompositions we constructed, while ray-tracing and performing a radio-propagation simulation, is accurately captured by our cost predictor, for ray distributions arising from realistic data. Furthermore, we use the predictor to optimize several data structures. Our experimental results show that the data structures constructed using our schemes are generally comparable or better than those built with fixed parameters a priori. We then fine-tune the predictor and observe the behavior of our algorithm on data structures built to support a simple ray-tracing engine. It appears to work well in practice.