GPU Tessellation of Cubic Bezier Curves

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques for rendering cubic Bezier curves are inefficient, leading to slower rendering times and visible approximation errors, especially at higher zoom levels, due to CPU processing bottlenecks and inadequate GPU tessellation capabilities.

Innovation Solution

The technique involves a Graphics Processing Unit (GPU) that splits a cubic Bezier curve into multiple quadratic Bezier curves, which are then rendered in parallel using GPU hardware, allowing for real-time adaptation to different zoom levels without CPU preprocessing, thereby improving performance and reducing data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cubic Bezier curves are rendered using traditional CPU-based techniques, then the rendering process is simpler to implement, but the rendering speed is slow and approximation errors are visible at higher zoom levels

Engineering Contradiction:
Improverendering speedVSAvoidcurve approximation accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent divides a cubic Bezier curve into multiple quadratic Bezier curve segments by generating vertices along the curve. Each quadratic segment approximates a portion of the original cubic curve, and the collection of segments collectively represents the full curve. This segmentation enables parallel processing on GPU while maintaining accuracy through adaptive vertex generation based on zoom level.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If cubic Bezier curves are split into multiple quadratic Bezier curves with high precision, then the curve accuracy is improved, but the computational complexity and data transfer requirements increase

Engineering Contradiction:
Improvecurve approximation accuracyVSAvoidprocessing complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent implements dynamic adaptation of the number of quadratic segments based on zoom level. At lower zoom levels, fewer segments are used to reduce complexity. At higher zoom levels, more segments are generated to maintain accuracy. This dynamic adjustment optimizes the balance between precision and computational complexity in real-time.

Inventive Principle:
Principle #15Dynamics

3Productivity

If CPU preprocessing is used to split cubic Bezier curves before GPU rendering, then the GPU workload is reduced, but the overall rendering pipeline efficiency decreases due to data transfer overhead

Engineering Contradiction:
Improverendering pipeline efficiencyVSAvoiddata transfer time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the curve subdivision operation from the CPU preprocessing stage and relocates it to the GPU rendering stage. By moving this computation to the GPU, the system eliminates the need for data transfer between CPU and GPU for curve segmentation, while leveraging the GPU's parallel processing capabilities to perform the subdivision efficiently during rendering.

Inventive Principle:
Principle #2Taking out (Extraction)

4Manufacturing precision

If the number of quadratic Bezier curves is increased to reduce approximation errors, then the visual quality is improved, but the rendering time increases

Engineering Contradiction:
Improvevisual accuracyVSAvoidrendering time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent changes the parameter of segment count dynamically based on zoom level. At lower zoom levels where approximation errors are less noticeable, fewer segments are used to maintain fast rendering. At higher zoom levels where accuracy becomes critical, more segments are generated. This parameter adaptation resolves the trade-off between visual quality and rendering time.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11010939B2Rendering of cubic Bezier curves in a graphics processing unit (GPU)
Publication Date: 2021.05.18 ADOBE INC
  • US11010939B2 patent drawing
  • US11010939B2 patent drawing
  • US11010939B2 patent drawing

AI summary

Techniques are disclosed for a graphics processing unit (GPU) to process cubic Bezier curves, and render the cubic Bezier curves. In an example, the GPU receives a cubic Bezier curve. For example, a graphics pipeline of the GPU receives a plurality of corner points of a control polygon in the form of a patch primitive, the control polygon representing the cubic Bezier curve. The graphics pipeline tessellates the cubic Bezier curve into multiple quadratic Bezier curves, such that the multiple quadratic Bezier curves approximate the cubic Bezier curve. The number of quadratic Bezier curves generated in such a manner is adaptively based on a zoom level at which the cubic Bezier curve is to be displayed. For example, as and when the zoom level changes, new number of such quadratic Bezier curves are tessellated from the cubic Bezier curve. The quadratic Bezier curves are then rendered for display.