Tile-Based Graphics Processing With Two-Pass Hidden Surface Removal
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems suffer from redundant rendering operations due to sequential processing of primitives, leading to reduced frame rates and increased memory bandwidth requirements, exacerbated by larger and more complex render outputs, and existing hidden surface removal techniques are inadequate for complex scenes.
Innovation Solution
Implementing a two-pass rendering process, comprising a pre-pass operation to determine visibility information and a main pass for further processing, with selective omission of vertex attribute processing when unnecessary, to achieve improved hidden surface removal.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially in a single pass, then the processing pipeline is simple, but redundant rendering operations occur reducing frame rates
Solution Approach 1:
The rendering process is divided into two distinct passes: a first pass that processes all primitives to generate visibility information, and a second pass that processes only visible primitives. This segmentation eliminates redundant rendering operations by separating the visibility determination phase from the actual rendering phase, thereby improving frame rate without excessive complexity.
Solution Approach 2:
The first pass performs preliminary processing to determine visibility information for all primitives before the actual rendering begins. By performing this preliminary action in advance, the second pass can focus only on rendering visible primitives, eliminating redundant operations and improving productivity.
2Loss of energy
If all vertex attributes are processed for every primitive, then rendering accuracy is maintained, but memory bandwidth requirements increase
Solution Approach 1:
The first pass extracts and processes only the necessary vertex attributes (position and depth-related attributes) required for visibility determination, while excluding non-essential attributes (color, texture coordinates, etc.). This extraction reduces memory bandwidth requirements for the first pass, and since visibility information is pre-computed, the second pass can proceed with fewer attribute transfers.
Solution Approach 2:
Instead of processing all vertex attributes for all primitives in both passes, the system applies partial action by processing only the essential attributes in the first pass and only visible primitives in the second pass. This partial processing approach reduces overall memory bandwidth consumption while maintaining rendering accuracy for the final output.
3Productivity
If existing hidden surface removal techniques are used, then some redundancy is reduced, but they are inadequate for complex scenes
Solution Approach 1:
The system dynamically adapts to complex scenes by performing a comprehensive first pass that accurately determines visibility for all primitives regardless of scene complexity. The second pass then dynamically processes only the visible primitives identified in the first pass. This dynamic two-pass approach maintains high hidden surface removal efficiency for complex scenes unlike static single-pass techniques.
Solution Approach 2:
The first pass continuously processes all primitives to build complete visibility information, ensuring that no potential visible surfaces are missed in complex scenes. The second pass continues this useful action by rendering only the confirmed visible surfaces, maintaining continuous and efficient processing throughout the entire rendering pipeline.
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. Processing of one or more vertex attributes may be omitted during the first, pre-pass operation.


