Bounding Volume Hierarchy for Primitive Vertex Culling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graphics processing systems face inefficiencies in reducing vertex processing burdens, particularly in lower powered and portable devices, as existing techniques to identify non-visible primitives do not significantly decrease the number of vertices processed.
Innovation Solution
A method and apparatus that divide primitives into sub-sets and generate a tree representation, where each node represents a sub-set of primitives, their associated vertices, and the volume of space they occupy, allowing for efficient identification and rejection of non-visible primitives and vertices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional primitive culling techniques are used to identify non-visible primitives, then the number of visible primitives can be reduced, but the number of vertices processed remains significantly high
Solution Approach 1:
The patent segments the set of primitives into multiple subsets and organizes them in a tree structure (BVH), where each node represents a spatial bounding volume containing a subset of primitives. This segmentation allows the system to test and eliminate entire subsets of primitives and their associated vertices in a single operation, rather than processing individual primitives or all vertices separately.
Solution Approach 2:
The patent performs preliminary spatial organization of primitives into a bounding volume hierarchy before rendering. By pre-computing the tree structure with bounding volumes for each node, the system can quickly determine which primitives and vertices are visible during rendering, avoiding the need to process vertices for primitives that will ultimately be culled.
2Reliability
If all vertices in the vertex array are processed, then complete vertex processing is achieved, but bandwidth and power consumption increase significantly
Solution Approach 1:
The patent extracts and processes only the vertices associated with visible primitives by traversing the BVH tree and identifying visible leaf nodes. Vertices belonging to primitives in invisible subtrees are excluded from processing entirely, reducing both computational workload and memory bandwidth requirements while maintaining completeness for visible geometry.
3Reliability
If all vertices in the vertex array are processed, then complete vertex processing is achieved, but bandwidth consumption increases significantly
Solution Approach 1:
The patent extracts and processes only the vertices associated with visible primitives by traversing the BVH tree and identifying visible leaf nodes. Vertices belonging to primitives in invisible subtrees are excluded from processing entirely, reducing both computational workload and memory bandwidth requirements while maintaining completeness for visible geometry.
4Productivity
If a tree representation is generated for all primitives, then spatial organization is improved, but device complexity increases
Solution Approach 1:
The patent implements a nested hierarchical structure where bounding volumes at each tree level contain and organize subsets of primitives from lower levels. This nesting allows efficient spatial queries by traversing from root to leaves, eliminating the need to examine all primitives individually while maintaining organized spatial relationships.
Data Source
AI summary
A set of primitives is divided into plural sub-sets of primitives, and a tree representation for representing the set of primitives in which each leaf node of the tree represents one of the sub-sets, and each parent node of the tree represents a sub-set of primitives corresponding to the combination of the sub-sets of primitives of all of its child nodes, is generated. For each node of the tree representation data indicating: the sub-set of primitives that the node represents; the vertices that are used by the primitives in the sub-set of primitives that the node represents; and the volume of space that the sub-set of primitives that the node represents falls within, is determined. The tree representation is then used to determine a set of primitives and a set of vertices to be processed when processing the set of primitives for the output frame.


