Ray Tracing Acceleration Structure Morton Code Bounding Box
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current ray tracing methods require significant computational resources and memory bandwidth due to the inefficiencies in generating and traversing acceleration structures, particularly in the traversal and intersection test processes.
Innovation Solution
The proposed apparatus generates an acceleration structure for ray tracing by using a Morton code to arrange primitives and select bounding boxes based on the increase rate of the bounding box size, optimizing the classification of primitives into bounding boxes to reduce the depth of the acceleration structure and enhance generation speed while maintaining quality.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional ray tracing methods are used to trace all rays reflected by objects, then intersection accuracy is maintained, but computational complexity and memory bandwidth requirements increase significantly
Solution Approach 1:
The patent segments the continuous space into discrete bounding boxes organized in a hierarchical acceleration structure. Primitives are spatially classified and grouped into bounding boxes at multiple levels, allowing the ray tracing system to skip large portions of space that do not contain primitives, thereby reducing computational complexity while maintaining intersection accuracy.
Solution Approach 2:
The patent introduces an acceleration structure as an intermediary data structure between the ray tracing algorithm and the primitive data. This acceleration structure pre-organizes primitives into bounding boxes, serving as a mediator that filters potential ray-primitive intersections before performing actual intersection tests, thus reducing the computational burden on the main ray tracing process.
2Reliability
If acceleration structures are generated using traditional sorting methods along space-filling curves, then spatial classification is achieved, but generation speed is limited
Solution Approach 1:
The patent applies preliminary action by pre-sorting primitives according to Morton codes before constructing the acceleration structure. This pre-sorting organizes primitives in a spatially coherent order that facilitates efficient bounding box construction and hierarchy formation, enabling faster acceleration structure generation while maintaining high-quality spatial classification.
Solution Approach 2:
The patent changes the parameter of primitive ordering by using Morton codes (a specific space-filling curve encoding) instead of traditional sorting methods. This parameter change in the ordering strategy enables more efficient spatial classification and accelerates the construction process by allowing linear-time sorting and simpler bounding box calculations.
3Productivity
If the acceleration structure depth is reduced to improve traversal efficiency, then generation speed increases, but bounding box quality may deteriorate
Solution Approach 1:
The patent applies dynamics by adaptively adjusting the bounding box construction process based on the distribution of primitives and the desired tree depth. The method dynamically selects split planes and bounding box boundaries to maintain quality metrics even when the overall structure depth is reduced, allowing the system to flexibly balance between generation speed and bounding box quality.
Solution Approach 2:
The patent addresses the depth-quality tradeoff by introducing additional optimization dimensions beyond simple depth control. It uses Morton code-based spatial organization and adaptive bounding box refinement in multiple dimensions to maintain quality metrics while achieving reduced depth, effectively adding dimensional complexity to the construction process to solve the depth-quality contradiction.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method for generating an acceleration structure used for ray tracing includes generating (S710) a linear code, the linear code representing a position of each of a plurality of primitives (811-821) included in a three-dimensional (3D) space, arranging (S720) the plurality of primitives (811-821) according to the generated linear code, determining (S730) a rate of change of a size of a generated bounding box (1010, 1020, 1030, 1040, 1050) while sequentially inputting the plurality of arranged primitives (811-821) into the generated bounding box (1010, 1020, 1030, 1040, 1050), selecting (S740) one of the plurality of arranged primitives (811-821) based on the rate of change of the size of the generated bounding box (1010, 1020, 1030, 1040, 1050) and classifying (S750) the plurality of arranged primitives (811-821) into a plurality of determined bounding boxes (1210, 1220) according to the selected primitive.