BVH Traversal via Voxel Mapping for Ray Tracing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Ray tracing in computer graphics is computationally intensive due to the need for millions of ray-object intersection tests, which can be time-consuming, especially when using traditional acceleration data structures like BVH trees that start traversal from the root node, covering the entire scene volume.
Innovation Solution
The method determines a deeper starting node for traversal in the BVH tree based on a voxel representation of the scene, allowing traversal to begin from a non-root node, thereby reducing the number of intersection tests by starting the process from a node that is closer to the intersection point, thus optimizing the traversal and reducing computational complexity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traversal starts from the root node of the BVH tree, then the entire scene volume is covered ensuring complete ray-object intersection detection, but the number of intersection tests increases significantly leading to longer rendering time
Solution Approach 1:
The scene is pre-divided into voxels before ray tracing begins. Each voxel is associated with specific BVH nodes in advance, creating a mapping that allows the system to jump directly to relevant nodes during traversal. This preliminary organization enables the ray tracing algorithm to skip unnecessary nodes and start traversal from deeper, more relevant nodes in the hierarchy, reducing the number of intersection tests while maintaining complete coverage of ray-object intersections
Solution Approach 2:
The scene volume is segmented into discrete voxels that partition the 3D space. This segmentation creates a grid structure where each voxel represents a specific spatial region. By associating BVH nodes with specific voxels, the system can determine which nodes are relevant to a given ray's path without traversing the entire tree from the root, thus reducing rendering time while ensuring all potential intersections are detected
2Reliability
If traversal starts from the root node, then all potential ray-object intersections are guaranteed to be found, but the computational complexity increases due to examining unnecessary nodes
Solution Approach 1:
The voxel-BVH node mapping is pre-computed and stored, allowing the traversal algorithm to directly identify relevant nodes based on which voxels the ray intersects. This eliminates the need to examine nodes that correspond to empty or irrelevant spatial regions, reducing computational complexity while maintaining reliable detection of all actual ray-object intersections
Solution Approach 2:
Different regions of the BVH tree are treated differently based on their spatial correspondence to voxels. Nodes associated with voxels that the ray actually passes through are examined in detail, while nodes associated with voxels that the ray does not intersect are skipped entirely. This local optimization reduces computational complexity by focusing resources only on relevant portions of the scene
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
Methods and systems disclosed improve the efficiency of ray tracing. In one aspect, a method of ray tracing in a digital representation of a scene includes segmenting the scene into a plurality of voxels, associating each of the voxels with a node of a bounding volume hierarchy (BVH) representing one or more object primitives within the scene, determining a set of voxels through which the ray passes, determining a set of nodes associated with the set of voxels, determining a deepest common ancestor node of the set of nodes, traversing the hierarchy starting at the deepest common ancestor node to determine a point of intersection between the ray and one of the one or more object primitives; and updating a digital image of the scene based on the determined point of intersection.