Acceleration Structure Generation Using Morton Code Primitives
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current ray tracing methods require significant computation and memory bandwidth for generating and traversing acceleration structures, which hinders the efficiency of the search and intersection check processes in 3D rendering.
Innovation Solution
A method and apparatus for generating an acceleration structure by aligning primitives, determining candidate split points using Morton codes, storing these points, and generating nodes to construct the acceleration structure, which reduces computation and power consumption by utilizing previously stored candidate split points from similar renderings.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional ray tracing methods are used to generate acceleration structures, then complete and accurate spatial identification of objects is achieved, but computation time and memory bandwidth consumption increase significantly
Solution Approach 1:
The patent applies preliminary action by pre-sorting primitives using Morton codes before the actual acceleration structure generation. This pre-processing step organizes primitives in a predetermined direction based on their spatial coordinates, so that when the acceleration structure is generated, the primitives are already in an optimal sequence for spatial identification. This eliminates the need for complex real-time sorting during ray tracing operations, significantly reducing computation time while maintaining accurate spatial identification.
Solution Approach 2:
The patent segments the acceleration structure generation process into distinct phases: (1) sorting primitives by Morton codes in a predetermined direction, (2) identifying split points based on the sorted sequence, and (3) generating the acceleration structure using these split points. This segmentation allows each phase to be optimized independently, with the sorting phase preparing data in advance and the structure generation phase efficiently building the acceleration hierarchy without redundant computations.
2Measurement precision
If traditional ray tracing methods traverse acceleration structures, then accurate intersection checks are performed, but memory bandwidth consumption increases
Solution Approach 1:
The patent applies preliminary action by pre-organizing primitives into an acceleration structure with nodes arranged in a predetermined direction based on Morton codes. This pre-organization creates a hierarchical structure where spatial relationships are encoded in the node arrangement itself. During ray tracing, the traversal follows this predetermined structure, allowing the GPU to efficiently navigate through space without requiring frequent random memory accesses, thus reducing memory bandwidth consumption while maintaining accurate intersection detection.
3Productivity
If acceleration structures are generated without optimization, then complete object data is processed, but computation and power consumption increase
Solution Approach 1:
The patent applies preliminary action by pre-sorting all primitives using Morton codes before acceleration structure generation. This pre-sorting organizes primitives in a predetermined direction based on their spatial coordinates, creating an ordered sequence that simplifies subsequent processing. When the acceleration structure is generated from this pre-sorted data, the computation required for spatial identification and split point determination is significantly reduced, leading to lower power consumption during rendering while maintaining complete object data processing.
Data Source
AI summary
A method and apparatus for generating an acceleration structure. Primitives corresponding to at least one object on which rendering is to be performed may be aligned. Candidate split points are determined by scanning the aligned primitives. The candidate split points are stored according to a predetermined rule, and the acceleration structure is generated by sequentially reading the stored candidate split points and generating at least one node corresponding to the stored candidate split points.


