Stroked Curve Rendering via Canonical Space Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The rendering of stroked curves in computer graphics systems is a resource-intensive operation, particularly due to the need for direct determination of sampling points within the curve, which can be costly in terms of CPU load and often requires dedicated hardware.

Innovation Solution

The method involves mapping the stroked curve to a canonical curve in canonical space, using transformations like translation, rotation, and uniform scaling, allowing for efficient determination of whether sampling points fall within the curve by testing against a predefined canonical curve, thereby reducing the need for individual data storage and hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If direct determination of sampling points within the stroked curve is performed, then rendering accuracy is improved, but CPU load increases significantly

Engineering Contradiction:
Improverendering accuracyVSAvoidCPU load
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent creates a canonical version of the stroked curve that stores pre-computed geometric information. Instead of performing expensive direct determination operations on the original curve for each sampling point, the system copies the curve to canonical space where the determination can be performed more efficiently using the pre-stored canonical representation.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent performs preliminary transformation of the stroked curve into canonical space before rendering operations. This preliminary action pre-computes and stores the canonical representation, so that subsequent sampling point determinations can be performed efficiently without repeating the expensive direct determination process.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If dedicated hardware is used for stroked curve rendering, then rendering efficiency is improved, but device complexity increases

Engineering Contradiction:
Improverendering efficiencyVSAvoidhardware requirements
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces canonical space as an intermediary representation between the original stroked curve and the rendering process. This intermediary allows the system to achieve efficient rendering through software-based canonical curve operations rather than requiring dedicated hardware, as the canonical representation enables efficient algorithms to be implemented on general-purpose processors.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If individual data storage for each stroked curve is performed, then rendering precision is improved, but memory usage increases

Engineering Contradiction:
Improverendering precisionVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent creates a universal canonical representation that can serve multiple purposes: it enables efficient sampling point determination, reduces memory requirements compared to storing full individual curve data, and maintains rendering precision. The canonical form acts as a multi-functional data structure that achieves multiple goals simultaneously.

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

Data Source

PatentUS8928667B2Rendering stroked curves in graphics processing systems
Publication Date: 2015.01.06 ARM LTD
  • US8928667B2 patent drawing
  • US8928667B2 patent drawing
  • US8928667B2 patent drawing

AI summary

When rendering a stroked curve for display in a graphics processing system, an input stroked curve 1 defined in user space 2 is received by the system. The portion of a canonical space 5 that corresponds to the received stroked curve 1 is determined by determining the portion of a canonical curve 12 defined in the canonical space 5 that corresponds to the received stroked curve 1. Then, for each of a plurality of sampling points within one or more primitives 4 that are generated to cover the received stroked curve 1′ following its projection into surface space 3, it is determined whether a corresponding location in canonical space 5 (to the sampling point in surface space 3) is within the portion of the canonical space that corresponds to the received stroked curve, e.g. by looking up suitable information that has been stored (in advance) in one or more graphics textures. Data for rendering the received stroked curve 1 (e.g. RGBA values) is then assigned to each of the plurality of sampling points based on the determination.