Though a large variety of efficiency structures for ray tracing exist, kd-trees today seem to slowly become the method of choice. In particular, kd-trees built with cost estimation functions such as a surface area heuristic (SAH) seem to be important for reaching high performance. Unfortunately, most algorithms for building such trees have a time complexity of O(N log2 N), or even O(N2). In this paper, we analyze the state of the art in building good kd-trees for ray tracing, and eventually propose an algorithm that builds SAH kd-trees in O(N log N), the theoretical lower bound
In this paper we address the problem of fast construction of spatial hierarchies for ray tracing with applications in animated environments including non-rigid animations. We discuss the properties of currently used techniques with O(N log N) construction time for kd-trees and bounding volume hierarchies. Further, we propose a hybrid data structure blending a spatial kd-tree with bounding volume primitives. We keep our novel hierarchical data structures algorithmically efficient and comparable with kd-trees by using a cost model based on surface area heuristics. Although the time complexity O(N log N) is a lower bound required for construction of any spatial hierarchy that corresponds to sorting based on comparisons, using approximate method based on space discretization, we propose novel hierarchical data structures with an expected O(N log log N) time complexity. We also discuss constants behind the construction algorithms of spatial hierarchies important in practice. We have documented the performance of our algorithms by results obtained from implementation on nine scenes
In the scope of rendering complex models with high depth complexity, it is of great importance to design output-sensitive algorithms, i.e., algorithms with the time complexity proportional to the number of visible graphic primitives in the resulting image. In this paper an algorithm allowing efficient culling of the invisible portion of the rendered model is presented. Our approach uses a spatial hierarchy to represent the topology of the model. For a current viewpoint a set of polygonal occluders is determined that are used to build the occlusion tree. In the occlusion tree occlusion volumes of the selected occluders are merged. Visibility from the viewpoint is determined by processing the spatial hierarchy and classifying the visibility of its regions. In this process the occlusion tree is used to determine the viewpoint-to-region visibility efficiently. The algorithm is well-suited for complex models where large occluders are present.