Vector Graphics Rendering via Metadata Buffers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional vector graphics rendering workflows consume significant computing resources, hindering the ability to render images at suitable frame rates due to the complexity of graphic trees and the need to process numerous graphic leafs, especially when dealing with high-density displays and digitized content.
Innovation Solution
The proposed solution involves a CPU reducing the number of graphic leafs in graphic trees by grouping objects of the same type, generating a metadata buffer with transformation information, and attaching it to a single tessellated object, which is then rendered by the GPU, reducing data passed and processing time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional rendering workflows process all graphic leafs individually, then rendering completeness is maintained, but computing resources are excessively consumed and frame rate decreases
Solution Approach 1:
The patent merges multiple graphic leafs representing similar objects into a single representative graphic leaf. Objects of the same type (e.g., all circles, all rectangles) are grouped together and represented by one leaf node in the modified graphic tree, significantly reducing the number of leaves that need to be processed individually while maintaining rendering completeness through batch processing.
Solution Approach 2:
The representative graphic leaf serves multiple functions: it represents a single object for structural purposes and simultaneously represents all similar objects in the batch through association. This universal representation allows the rendering system to process one leaf to generate rendering information for multiple actual objects, improving productivity without sacrificing completeness.
2Loss of time
If the number of graphic leafs is reduced by batching, then GPU execution time decreases, but other portions of the rendering workflow consume significant computing resources
Solution Approach 1:
The patent performs preliminary grouping and identification of similar objects before the rendering process begins. By pre-organizing objects into batches and creating representative leaves in advance, the CPU workload is shifted to a preparation phase, allowing the GPU to execute rendering more efficiently during the actual rendering phase with reduced real-time processing requirements.
3Manufacturing precision
If all graphic leafs are processed individually, then rendering accuracy is maintained, but processing time increases significantly
Solution Approach 1:
The patent creates a simplified copy or representation of the graphic tree structure where multiple identical or similar leaves are replaced by a single representative leaf. This copying approach maintains the essential structural and rendering information needed for accuracy while dramatically reducing the number of processing operations required, thus decreasing processing time without sacrificing rendering accuracy.
Data Source
AI summary
Vector graphics rendering techniques are described. Graphics processing units (GPUs) can render vector graphics images according to graphic trees having graphic leafs, each representing a graphics object (e.g., a shape) depicted in a vector graphics image. The described techniques involve generating groups of graphics objects depicted in an image such that graphics objects of a group have a same object type, e.g., shape. Transformations are determined that describe how to transform a first graphics object of a group to obtain other graphics objects of the group. The first graphics object is tessellated and a metadata buffer generated for the group having information indicative of the transformations. The metadata buffer is attached to a graphic leaf representing the first graphics object and graphic leafs representing the other graphics objects are removed from the graphic tree. The GPU renders objects by group based on the tessellated object and the metadata buffer's information.


