Ray Tracing Architectures for Grouped Shading and Hierarchical Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing ray tracing systems struggle with inefficient scaling and access to scene data, leading to suboptimal performance in parallel processing due to inadequate handling of acceleration structures.
Innovation Solution
A ray tracing system that includes a sorter to group rays by common shader code and data, utilizing a computation resource for shading intersections, and an intersection testing resource for concurrent testing, with a controller managing ray distribution and shading, and a hierarchical acceleration structure for efficient data access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If more processing resources are provided for parallel ray tracing, then computation capability increases, but data access efficiency deteriorates due to inadequate handling of acceleration structures
Solution Approach 1:
The patent segments rays into different groups based on which acceleration structure elements they intersect. Each group is assigned to a different processing resource, allowing parallel processing while maintaining efficient data access patterns. The scene is divided into multiple acceleration structure elements (AEs), and rays are distributed to processing resources based on their intersection patterns with AEs.
Solution Approach 2:
The patent introduces a new dimension of organization by grouping rays based on their intersection patterns with acceleration structure elements, rather than traditional spatial or pixel-based grouping. This additional organizational dimension enables both high computation capability and efficient data access by aligning data access patterns with the hierarchical structure of the acceleration structure.
2Speed
If rays are processed independently in parallel, then processing speed increases, but shading efficiency deteriorates due to lack of common shader data grouping
Solution Approach 1:
The patent merges rays that share common shader code and data requirements into the same processing groups. By combining rays with identical or similar shading needs, the system can load common shader data once and reuse it across multiple rays, significantly improving shading efficiency while maintaining parallel processing speed.
Solution Approach 2:
The patent creates processing groups that handle multiple functions simultaneously: intersection testing, shading, and data caching. Each processing resource is designed to handle a complete pipeline for its assigned ray group, making it universal and efficient at handling both intersection testing and subsequent shading operations for the same rays.
3Measurement precision
If acceleration structures are made more detailed for accurate intersection testing, then intersection accuracy improves, but data access complexity increases
Solution Approach 1:
The patent performs preliminary organization of rays based on their intersection patterns with acceleration structure elements before actual ray tracing begins. By pre-grouping rays according to which AEs they intersect, the system simplifies subsequent data access operations while maintaining full intersection accuracy, as the grouping structure is established in advance.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
Aspects comprise systems implementing ray tracing functionality according to example architectures. In one example, rays are collected into collections against elements of an acceleration structure, which in some cases are associated with objects composing a scene being ray traced. Indications of detected ray intersections also can be collected in an output buffer, and in some examples, the output buffer can comprise a plurality of portions, each associated with a scene object, or a common portion of code to be executed during shading. Buffer contents can be accessed in a block read. An intersection shading resource can load data to be used in shading the intersections for the identified rays, and locally storing that data for use in shading those intersections.