Early Depth Testing for Hidden Surface Removal
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face inefficiencies due to 'overdraw' issues, where primitives are processed sequentially and not in perfect front-to-back order, leading to redundant rendering operations and increased memory bandwidth requirements, which existing techniques like early occlusion culling and per-sample sorting struggle to fully address without significant costs or practical limitations.
Innovation Solution
The proposed method involves performing early depth tests on larger patches of the render output, determining the number and distribution of depth value regions within these patches, and using this information to selectively perform depth tests, allowing for more precise and efficient removal of hidden surfaces without the need for costly per-sample or per-fragment sorting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If primitives are processed sequentially in current graphics processing systems, then the processing order is simple to implement, but overdraw occurs leading to redundant rendering operations and increased memory bandwidth requirements
Solution Approach 1:
The patent performs early depth testing before the main rendering process to identify and eliminate hidden surfaces in advance. By testing depth values of fragments against the depth buffer early in the pipeline, the system determines which fragments are visible before committing full rendering resources, thereby preventing overdraw and redundant processing of hidden primitives.
2Productivity
If early occlusion culling is used to remove hidden surfaces, then redundant rendering is reduced, but the technique cannot fully address the problem without significant costs or practical limitations
Solution Approach 1:
The patent segments the rendering process into distinct stages: early depth testing, fragment generation, and main rendering. By separating the depth test operation from the main rendering pipeline and performing it early on generated fragments, the system achieves efficient hidden surface removal without requiring complex per-sample sorting or other sophisticated techniques.
3Productivity
If per-sample sorting is performed to achieve perfect front-to-back order, then overdraw is eliminated, but the processing cost and complexity increase significantly
Solution Approach 1:
The patent extracts the depth testing operation from the main rendering pipeline and performs it independently on fragments early in the process. By taking out the depth comparison function and applying it to fragments before they enter the full rendering pipeline, the system achieves efficient hidden surface removal without requiring expensive per-sample sorting operations.
4Measurement precision
If depth tests are performed on individual sampling points, then precision is maintained, but processing time increases due to the large number of tests required
Solution Approach 1:
The patent merges multiple fragment depth tests into a unified early depth testing stage that processes fragments in batches. By combining the depth testing operation with fragment generation and performing tests on multiple fragments simultaneously rather than individually at later stages, the system maintains precision while reducing total processing time.
Data Source
AI summary
A graphics processing pipeline 1 includes a rasteriser 3 that tests patches representing respective different regions of a render output against the edges of primitives 2 to determine if the primitive at least partially covers the patch and an early depth test stage 4 that performs early depth tests for primitives in respect of patches of the render output that the primitive has been found by the rasteriser at least partially to cover, by using depth test information 5 associated with a patch indicating the number and distribution of different depth value regions associated with the patch to determine the depth value region or regions associated with the patch that the primitive should be depth tested against, and then performing a depth test or tests for the primitive in respect of the respective determined depth value region or regions associated with the patch.


