Tessellation Patch Ordering for Coherent Primitive and Vertex Output
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing tessellation methods in computer graphics often result in undesirable visual artefacts due to discontinuous changes in level of detail, and increased processing effort with larger numbers of triangles.
Innovation Solution
A method of controlling the order in which primitives are generated during tessellation by selecting and tessellating sub-patches recursively until no further sub-division is possible, using flags to determine the order of sub-patch selection, and controlling the output order of vertices to improve coherency and efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the number of primitives is increased to improve level of detail, then the accuracy of surface approximation is improved, but the processing effort required to render the scene increases
Solution Approach 1:
The patent segments the tessellation process into ordered stages where sub-patches are processed sequentially rather than all at once. This segmentation allows the system to generate primitives in a controlled manner, processing only necessary portions at each stage, thereby reducing overall processing effort while maintaining required level of detail.
Solution Approach 2:
The patent performs preliminary ordering of sub-patches before actual tessellation processing. By pre-determining the processing sequence based on flags and spatial relationships, the system avoids unnecessary processing steps and optimizes the order in which primitives are generated, reducing redundant computational effort.
2Stability of the object's composition
If existing tessellation methods are used to change level of detail smoothly, then visual continuity is maintained, but discontinuous visual artefacts occur due to discontinuous tessellation changes
Solution Approach 1:
The patent uses feedback mechanisms through flags that track the processing state of sub-patches. These flags provide information about which sub-patches have been processed and their spatial relationships, enabling the system to adjust the tessellation process to maintain visual continuity and avoid discontinuous artefacts.
Solution Approach 2:
The patent applies different processing qualities to different sub-patches based on their spatial location and relationship to already-processed areas. By adjusting the tessellation behavior locally in response to processing history and spatial context, the system maintains visual continuity while avoiding discontinuous artefacts in specific regions.
3Productivity
If vertices are cached for domain shaders, then rendering efficiency is improved, but cache misses occur due to poor vertex ordering
Solution Approach 1:
The patent performs preliminary ordering of vertices and primitives before rendering. By pre-organizing vertices in the order they will be processed and ensuring spatially adjacent primitives are processed contiguously, the system maximizes vertex cache hit rates and minimizes cache misses during rendering.
Solution Approach 2:
The patent changes the processing parameters and ordering sequences based on the spatial relationships and flags of sub-patches. By dynamically adjusting the processing order parameter to match spatial adjacency and vertex reuse patterns, the system optimizes cache performance and reduces cache misses.
Data Source
AI summary
A method of controlling the order in which primitives, generated during tessellation, are output by the tessellation unit involves sub-dividing a patch, selecting one of the two sub-patches which are formed by the sub-division and tessellating that sub-patch until no further sub-division is possible before tessellating the other (non-selected) sub-patch. The method is recursively applied at each level of sub-division. Patches are output as primitives at the point in the method where they do not require any further sub-division. The selection of a sub-patch is made based on the values of one or more flags and any suitable tessellation method may be used to determine whether to sub-divide a patch. Methods of controlling the order in which vertices are output by the tessellation unit are also described and these may be used in combination with, or independently of, the method of controlling the primitive order.


