Graphics Processor Two-Pass Visibility Culling for Overdraw Reduction
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, allowing for efficient identification and culling of non-visible primitives, and a main pass performs detailed rendering based on the pre-pass results, using a set of primitive identifying information to control further processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially in a single pass, then the rendering pipeline is simple, but redundant rendering operations occur causing overdraw
Solution Approach 1:
The rendering process is divided into two distinct passes: a pre-pass that processes all primitives to determine visibility information, and a main pass that performs detailed rendering only for visible fragments. This segmentation eliminates redundant overdraw operations by identifying and culling invisible primitives before they are rendered, thereby significantly improving rendering efficiency without requiring complex real-time decision-making during the rendering process itself.
Solution Approach 2:
The pre-pass performs preliminary processing of all primitives to determine visibility information before the main rendering pass. By advancing the decision-making process to occur before rendering (rather than during), the system can identify which fragments are visible and should be rendered, and which are hidden and can be culled. This preliminary action eliminates the need for complex runtime visibility testing during the main pass, resolving the contradiction between rendering efficiency and pipeline complexity.
2Productivity
If early hidden surface removal techniques are used, then some redundant operations are reduced, but they are less effective in complex scenes
Solution Approach 1:
The two-pass rendering approach provides universal effectiveness across both simple and complex scenes. The pre-pass universally processes all primitives to determine visibility, and the main pass universally renders only visible fragments regardless of scene complexity. This multi-functional approach maintains high frame rates in simple scenes while also effectively handling complex scenes with overlapping primitives, thereby resolving the limitation of early hidden surface removal techniques that struggled with complex geometries.
3Loss of energy
If all fragments are rendered regardless of visibility, then rendering is straightforward, but memory bandwidth requirements increase
Solution Approach 1:
The pre-pass extracts and determines visibility information for all primitives before the main rendering pass. By separating the visibility determination function from the rendering function, the system can efficiently identify which fragments are visible and should be rendered, and which are hidden and can be culled. This extraction of visibility information enables the main pass to render only necessary fragments, significantly reducing memory bandwidth requirements and energy consumption without introducing excessive complexity through the use of simple visibility testing mechanisms.
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 usable to determine whether or not fragments for a primitive 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.


