Ray Tracing Triangle Strip Storage for Lower Vertex Data Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing ray tracing techniques on graphics processors are processing-intensive and require significant memory bandwidth due to high memory usage and inefficient storage of graphics primitives during ray-primitive intersections.
Innovation Solution
The method involves sorting graphics primitives into groups of contiguous primitives, storing fewer instances of shared vertex data, and optimizing the storage of these primitives using a ray tracing acceleration data structure like a bounding volume hierarchy (BVH) to reduce memory requirements and improve efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional ray tracing techniques are used to determine geometry intersections, then rendering accuracy is improved, but processing intensity and memory bandwidth requirements increase significantly
Solution Approach 1:
The patent segments geometry data into triangle strips, where consecutive triangles share vertices. This segmentation allows the ray tracing unit to process groups of triangles efficiently by loading vertex data once and reusing it across multiple triangles, rather than processing each triangle independently with full vertex data, thus reducing processing intensity while maintaining rendering accuracy.
Solution Approach 2:
The patent performs preliminary organization of geometry data into triangle strips with shared vertices before ray tracing operations. By pre-structuring the data to indicate vertex sharing relationships, the system prepares the geometry in an optimized format that reduces memory bandwidth requirements during actual ray-primitive intersection tests, without compromising the accuracy of rendering.
2Measurement precision
If complete vertex data is stored for each graphics primitive, then rendering precision is maintained, but memory usage and bandwidth requirements increase
Solution Approach 1:
The patent merges shared vertices across multiple triangles within a triangle strip into a single stored instance. Instead of storing complete vertex data for each triangle independently, the system stores vertex data once and uses references or indicators to show that the same vertex is shared by multiple triangles, thereby reducing memory usage while preserving rendering precision.
Solution Approach 2:
The patent uses references or pointers to copy vertex data relationships rather than duplicating actual vertex data. By storing lightweight references that indicate which vertices are shared among triangles in a strip, the system maintains the ability to reconstruct complete geometry information without actually copying large amounts of vertex data, thus reducing memory bandwidth requirements.
Data Source
AI summary
A system for storing geometry data for use by a graphics processor when rendering a frame that represents a view of a scene using a ray tracing process. The system comprises a processing circuit that is configured to prepare a ray tracing acceleration data structure for use when rendering a frame that represents a view of a scene using a ray tracing process. Graphics primitives for an end point of the ray tracing acceleration data structure is sorted into groups of contiguous graphics primitives, and fewer instances of vertex data is stored for a graphics primitive that is shared by at least two graphics primitives of the group of contiguous graphics primitives than the number of graphics primitives in the group of contiguous graphics primitives that share the vertex.


