Graphics Processor Two-Pass Visibility Culling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face inefficiencies due to 'overdraw' caused by processing primitives sequentially, leading to redundant rendering operations, which reduces frame rates and increases memory bandwidth requirements, especially in complex scenes where early hidden surface removal techniques are less effective.
Innovation Solution
Implementing a two-pass processing method where a pre-pass operation determines visibility information for primitives, generating a set of primitive identifying information that allows for efficient visibility testing during a main pass, enabling the graphics processor to render primitives in a way that avoids processing invisible fragments by subdividing the render output into patches and using unique primitive identifiers for each patch.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially using traditional rendering methods, then the rendering pipeline can process all primitives, but redundant rendering operations occur causing overdraw and reducing frame rates
Solution Approach 1:
The patent performs a pre-pass operation before the main rendering pass to determine visibility information for all primitives. This preliminary action identifies which primitives are visible and which are occluded, allowing the main pass to skip rendering of invisible fragments and avoid redundant overdraw operations, thereby improving frame rate and reducing energy waste.
Solution Approach 2:
The patent segments the rendering process into two distinct passes: a pre-pass for visibility determination and a main pass for actual rendering. This segmentation allows the system to separate the culling function from the rendering function, enabling efficient hidden surface removal while maintaining rendering quality.
2Loss of energy
If early hidden surface removal techniques are used, then some invisible fragments can be identified, but effectiveness decreases in complex scenes with many overlapping primitives
Solution Approach 1:
The pre-pass operation performs comprehensive visibility determination before rendering, ensuring that even in complex scenes with many overlapping primitives, the system can accurately identify all invisible fragments. This preliminary visibility testing enables effective hidden surface removal without sacrificing rendering performance.
Solution Approach 2:
The patent uses visibility information determined in the pre-pass as feedback to control the main rendering pass. The visibility test results feed back into the rendering decision-making process, allowing the system to adaptively skip rendering of invisible fragments while maintaining accurate rendering of visible ones, even in complex scenes.
3Reliability
If all sampling positions are processed to ensure complete rendering, then rendering completeness is maintained, but memory bandwidth requirements increase due to redundant data transfer
Solution Approach 1:
The pre-pass operation preliminarily identifies which sampling positions correspond to visible primitives before the main rendering pass. This allows the system to transfer and process only the data needed for visible fragments, reducing memory bandwidth requirements while maintaining rendering completeness through the subsequent visibility-based culling in the main pass.
Data Source
AI summary
When performing tile-based rendering a first, pre-pass operation in which primitives for a tile are processed to determine visibility information, the visibility information being usable to determine whether fragments for a primitive in the sequence of primitives should subsequently be processed further for the render output, is performed. Thereafter a second, main pass operation is performed in which the further processing of fragments for primitives that were processed during the first, pre-pass operation is controlled based on the determined visibility information for the sequence of primitives, such that for fragments for which the visibility information indicates that the fragments should not be processed further for the render output some or all of the processing during the second, main pass is omitted. The visibility information indicates which primitives should be rendered for which sampling positions of the render output in a hierarchical manner.


