Single-Pass Path Rendering Using Coverage Counting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing path rendering algorithms require two-pass rendering, which becomes bottlenecked by GPU state changes for complicated scenes with many paths, leading to unacceptable performance, and there is a lack of a general approach for single-pass path rendering.

Innovation Solution

An algorithm utilizing coverage counting and pixel local storage, keeping four values in pixel local storage to enable single-pass path rendering, including coverage count, framebuffer original color, path ID, and framebuffer's actual color, allowing for efficient antialiasing without state changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If two-pass rendering is used for path rendering, then rendering accuracy and anti-aliasing quality are maintained, but GPU state changes cause performance bottlenecks in complex scenes

Engineering Contradiction:
Improverendering accuracyVSAvoidrendering performance
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent merges the stencil buffer operations and color buffer rendering into a single pass by using a floating-point depth buffer to store coverage counts. This combines what were previously two separate rendering passes into one, eliminating GPU state changes between passes while maintaining rendering accuracy through coverage counting and anti-aliasing calculations performed in the same rendering pass.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the data type and usage of the depth buffer from a standard depth-testing parameter to a floating-point buffer that stores coverage count values. This parameter change allows the buffer to accumulate coverage information from multiple paths without requiring stencil buffer state changes, enabling single-pass rendering while maintaining precision for anti-aliasing calculations.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If multiple paths are rendered separately with state changes, then each path can be rendered with correct styling, but the number of state changes increases processing overhead

Engineering Contradiction:
Improvepath rendering correctnessVSAvoidGPU state management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent makes the depth buffer serve multiple functions: it acts as a coverage counter, stores anti-aliasing information, and enables batch rendering of multiple paths. By using a single buffer for multiple purposes and a unified rendering approach, the system reduces GPU state management complexity while maintaining correct rendering of multiple paths with different styles through batch processing.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Manufacturing precision

If anti-aliasing is implemented through traditional methods, then smooth edges are achieved, but additional rendering passes or buffer operations are required

Engineering Contradiction:
Improveedge smoothnessVSAvoidrendering time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary coverage counting during the main rendering pass by accumulating coverage values in the floating-point depth buffer. This preliminary action of counting coverage while rendering allows anti-aliasing to be calculated and applied in the same pass without requiring additional rendering operations, saving time while achieving smooth edges through the coverage-based anti-aliasing calculation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12633010B2System and method for single-pass path rendering using coverage counting
Publication Date: 2026.05.19 RIVE INC
  • US12633010B2 patent drawing
  • US12633010B2 patent drawing
  • US12633010B2 patent drawing

AI summary

An improved algorithm and technique for use in interactive graphics is disclosed. The new algorithm works by keeping three values in fast, memoryless pixel local storage for coverage counting (store the current coverage count at the pixel being covered), original framebuffer color (stores the color that was in the framebuffer at the pixel being covered immediately before the current path starts rendering), and the path ID (stores the unique ID of the last path to be drawn at the current pixel). The framebuffer is accessed from a fourth, texture-backed, pixel local storage plane.