Tile-Based Path Rendering Using Winding Number Calculation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for path rendering on graphics processing units (GPUs) face challenges in acceleration performance due to the need to configure input data as triangles, leading to high CPU usage and limited parallel processing capabilities, especially with stencil-based methods that generate excessive memory data input/output.
Innovation Solution
A method and apparatus that calculate a winding number for each pixel in a frame based on path data, determining whether to perform shading, allowing for efficient rendering by dividing images into tiles and assigning winding numbers to pixels within those tiles, thereby improving GPU performance without relying on the stencil buffer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If stencil-based path rendering method is used, then path rendering can be performed on GPU, but excessive memory data input/output is generated and parallel processing capability is limited
Solution Approach 1:
The image is divided into multiple tiles, and winding numbers are calculated independently for each tile. This segmentation allows parallel processing of different tiles simultaneously, reducing memory bandwidth requirements and improving rendering performance without excessive data input/output.
Solution Approach 2:
The patent changes the rendering approach from stencil buffer-based to winding number-based calculation. By computing winding numbers directly for each pixel in parallel and using them to determine shading, the method eliminates the need for excessive stencil buffer operations and associated memory traffic.
2Productivity
If CPU divides curve into triangles and instructs GPU, then path rendering is achieved, but a lot of time is consumed by CPU and GPU state changes occur frequently
Solution Approach 1:
The patent replaces the traditional CPU-based triangle subdivision approach with a GPU-based winding number calculation approach. The GPU directly computes winding numbers for pixels based on path data, eliminating the need for CPU preprocessing and reducing CPU-GPU communication overhead.
Solution Approach 2:
The patent performs preliminary calculations of winding numbers directly on the GPU using the given path data, avoiding the need for subsequent CPU-based triangle subdivision and rendering state changes. This preliminary action on the GPU transfers more work to the rendering device, reducing CPU burden.
Data Source
AI summary
A method of rendering at least one of paths forming an object includes setting an initial value to each of tiles included in a frame based on a position and a proceeding direction of the at least one of paths, calculating a winding number of each of the tiles through which the at least one of paths passes, among the tiles included in the frame, based on the set initial value, and determining whether to perform shading based on the set initial value and the calculated winding number.


