Patch-Encoded Presence Indications for Faster Ray Tracing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing ray tracing systems experience latency and increased computational load due to frequent execution of shader programs to determine the presence of punch through primitives during intersection testing, which is exacerbated by the use of sub-divided primitives for partial transparency.
Innovation Solution
A method of compressing and decompressing sub-primitive presence indications using a patch encoding approach, where a block of presence indications is represented by an ordered set of overlapping patches with defined states and positions, reducing the need for shader program execution during intersection testing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If sub-divided primitives are used to represent partial transparency, then rendering accuracy is improved, but latency and computational load increase due to frequent shader program executions
Solution Approach 1:
The patent pre-calculates and stores presence indications for each sub-primitive in a data structure before rendering. This preliminary action allows the system to quickly determine whether sub-primitives are present during intersection testing without executing shader programs, thereby reducing latency while maintaining rendering accuracy
Solution Approach 2:
The patent creates a compressed copy of the presence indication data in a specialized data structure that can be efficiently queried. This copy allows rapid determination of sub-primitive presence during ray tracing without accessing the original high-resolution texture data or executing shader programs, reducing computational load and latency
2Measurement precision
If sub-divided primitives are used to represent partial transparency, then rendering accuracy is improved, but computational load increases due to frequent shader program executions
Solution Approach 1:
The patent extracts the presence determination logic from the shader program and implements it as a separate data structure with pre-calculated presence indications. This extraction eliminates the need to execute shader programs during intersection testing, significantly reducing computational load while preserving rendering accuracy through the use of sub-divided primitives
Solution Approach 2:
The patent creates a compressed copy of the presence indication data in a specialized data structure that can be efficiently queried. This copy allows rapid determination of sub-primitive presence during ray tracing without accessing the original high-resolution texture data or executing shader programs, reducing computational load and latency
3Measurement precision
If presence indications are stored in uncompressed format, then rendering accuracy is maintained, but memory usage and data transfer overhead increase
Solution Approach 1:
The patent changes the parameter representation by encoding presence indications in a compressed format that uses fewer bits per sub-primitive than the original uncompressed format. This parameter change reduces memory usage and data transfer overhead while maintaining the ability to accurately determine sub-primitive presence for rendering
Solution Approach 2:
The patent merges multiple presence indication values into compressed run-length encoded sequences, reducing the total amount of data stored. This merging approach maintains rendering accuracy by preserving the essential presence/absence information while significantly reducing memory usage and data transfer requirements
Data Source
AI summary
A method and a compression unit are provided for compressing, into a block of compressed data, a block of sub-primitive presence indications for use in intersection testing in a rendering system. An ordered set of patches is obtained which represents the presence indications in the block of sub-primitive presence indications. At least two of the patches in the set of patches partially overlap with each other. Data defining the patches of the set of patches is stored in the block of compressed data. The data defining each of the patches defines a presence state of the patch and a position of the patch within the block of sub-primitive presence indications.


