Hierarchical Z-Buffer Occlusion Culling for 3D Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In 3D graphic rendering, the overdraw factor increases due to current primitives occluding or overlapping previously drawn primitives, leading to increased bandwidth usage and buffer access limitations.
Innovation Solution
A graphic rendering method utilizing a hierarchical z-buffer to discard primitives with minimum depth values greater than all maximum depth values in the z-buffer levels, reducing the workload of the rasterizer and fragment processor by efficiently performing occlusion culling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional immediate mode rendering processes all primitives in submission order, then complete scene rendering is achieved, but overdraw factor increases causing increased bandwidth usage and buffer access limitations
Solution Approach 1:
The patent applies preliminary action by performing occlusion culling before the rasterization stage. The hierarchical z-buffer stores depth information in advance, allowing the system to determine which primitives are occluded before they are processed by the rasterizer and fragment processor, thereby preventing unnecessary rendering operations and reducing bandwidth usage.
Solution Approach 2:
The patent implements segmentation by dividing the z-buffer into a hierarchical structure with multiple levels. This hierarchical z-buffer segments depth information into different resolution levels, enabling efficient occlusion testing at appropriate granularities. The segmented structure allows the system to discard occluded primitives at various levels without processing all pixels at full resolution, thus reducing overall bandwidth consumption.
2Reliability
If all primitives are processed by the rasterizer and fragment processor, then complete rendering is achieved, but processing workload increases
Solution Approach 1:
The patent performs occlusion culling as a preliminary action before rasterization. By using the hierarchical z-buffer to determine which primitives are occluded in advance, the system can discard these primitives before they reach the rasterizer and fragment processor, significantly reducing their workload while ensuring that only visible primitives are processed completely.
Solution Approach 2:
The patent extracts and removes occluded primitives from the rendering pipeline before they undergo expensive rasterization and fragment processing. The hierarchical z-buffer enables the system to identify and extract only the visible primitives that need to be processed, leaving occluded ones to be discarded, thus reducing the processing workload on the rasterizer and fragment processor.
3Productivity
If hierarchical z-buffer with multiple levels is implemented, then occlusion culling efficiency is improved, but memory structure complexity increases
Solution Approach 1:
The patent implements the nested doll principle by creating a hierarchical z-buffer where multiple levels of depth information are nested within each other. Each level contains depth data at a different resolution, with coarser levels nested within finer levels. This nested structure enables efficient occlusion culling by allowing the system to check coarser levels first and only process finer levels when necessary, improving occlusion culling efficiency while managing memory complexity through hierarchical organization.
Data Source
AI summary
A method for rendering a three dimensional scene on a displaying screen comprises: generating for a tile of a current scene a hierarchical z-buffer which comprises a plurality of levels organized according to depth values; calculating a minimum depth value d of a submitted primitive; calculating an intersection area associated with said primitive with respect to said tile; providing a multiplicity of aligned regions each associated with a level of the hierarchical z-buffer so that the exact area calculated is suitable to be covered, at least entirely, by the union of such aligned regions; comparing the minimum depth value d of the submitted primitive with corresponding maximum depth values v1, v2, . . . , vN each read from the levels of the hierarchical z-buffer; discarding said primitive whether the minimum depth value d is bigger than all maximum depth values v1, v2, . . . , vN.


