Graphics Processor Two-Pass Rendering Visibility Optimization
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 rendering process where a pre-pass operation determines visibility information for primitives, allowing for improved hidden surface removal by processing primitives in separate passes, with the first pass generating visibility data and the second pass performing actual rendering based on that information, and interleaving these passes to optimize throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially in a single pass, then the rendering pipeline is simple and easy to implement, but redundant rendering operations occur causing overdraw which reduces frame rates and increases memory bandwidth requirements
Solution Approach 1:
The rendering process is segmented into multiple passes: a first pass processes primitives to generate visibility information, and a second pass uses that visibility information to control rendering. This segmentation eliminates overdraw by separating the visibility determination from the actual rendering operations.
Solution Approach 2:
The first pass performs preliminary action by processing all primitives to generate visibility information before the actual rendering begins. This preliminary visibility determination allows the second pass to render only visible fragments, eliminating redundant rendering operations.
2Loss of energy
If early hidden surface removal techniques are used, then some redundant rendering can be avoided, but they are less effective in complex scenes leading to continued overdraw
Solution Approach 1:
The first pass performs preliminary processing of all primitives to generate comprehensive visibility information before rendering begins. This preliminary action enables complete hidden surface removal by determining which fragments are visible before the rendering process starts, making the technique effective even in complex scenes.
3Productivity
If visibility information is determined before rendering, then redundant rendering operations are reduced, but additional processing passes are required increasing the overall processing time
Solution Approach 1:
The rendering process is divided into distinct segments: a first pass for visibility determination and a second pass for actual rendering. This segmentation allows each pass to be optimized independently and enables parallel processing of visibility information generation and rendering operations.
Solution Approach 2:
The first pass continuously processes all primitives to generate visibility information that is then immediately available for the second pass. This continuous generation of visibility information eliminates gaps in processing and ensures that rendering operations can proceed without waiting for visibility determinations.
Data Source
AI summary
When performing tile-based rendering a first, pre-pass operation in which primitives in a sequence of primitives for a tile are processed to determine visibility information for the sequence of primitives, the visibility information being usable to determine whether or not 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. Passes from different tiles can be interleaved.


