Compressed Vertex Buffer Anti-Aliasing for Vector Graphics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for rendering two-dimensional vector graphics on computing systems often result in jagged and distorted curves due to insufficient anti-aliasing, particularly when resolution is adjusted, and require large data transfers between the CPU and GPU, leading to memory storage demands and latency issues, especially when geometry shaders are not supported.

Innovation Solution

The use of a compressed vertex buffer system, where the CPU tessellates vector paths into triangles and generates an index buffer and a compressed vertex buffer, excluding duplicate vertices, allows for efficient data transfer and anti-aliasing without requiring geometry shaders, thereby reducing memory usage and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If geometry shaders are used to perform anti-aliasing, then rendering quality is improved, but device complexity increases and compatibility is reduced

Engineering Contradiction:
Improverendering qualityVSAvoiddevice complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent introduces a compressed vertex buffer as an intermediary data structure that enables anti-aliasing without requiring geometry shaders. The compressed vertex buffer stores vertex information in a compact format that allows the GPU to perform anti-aliasing operations directly on the vertex data, eliminating the need for complex geometry shader pipelines while maintaining rendering quality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If geometry shaders are used to perform anti-aliasing, then rendering quality is improved, but adaptability decreases

Engineering Contradiction:
Improverendering qualityVSAvoidadaptability
Core Design Contradiction:
Manufacturing precisionVSAdaptability or versatility

Solution Approach 1:

The compressed vertex buffer technique provides a universal solution that works across different GPU frameworks and architectures. By using a standardized compressed vertex buffer format that can be processed by various GPU types, the patent achieves anti-aliasing functionality that is adaptable to different hardware configurations without requiring geometry shader support, thereby improving versatility.

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

3Manufacturing precision

If CPU performs geometry expansion and prepares multi-vertex data, then anti-aliasing is achieved, but memory storage demands increase

Engineering Contradiction:
Improveanti-aliasing qualityVSAvoidmemory storage demands
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential vertex information needed for anti-aliasing and stores it in a compressed format. Instead of preparing complete multi-vertex data for all polygons, the compressed vertex buffer stores unique vertex attributes with indices that reference them, removing redundant data while maintaining the ability to perform anti-aliasing operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter representation of vertex data by using a compressed format with indices instead of storing full vertex attributes for each polygon vertex. This parameter transformation reduces memory storage demands while preserving the geometric information necessary for anti-aliasing.

Inventive Principle:
Principle #35Parameter changes

4Manufacturing precision

If CPU performs geometry expansion and prepares multi-vertex data, then anti-aliasing is achieved, but data transfer latency increases

Engineering Contradiction:
Improveanti-aliasing qualityVSAvoiddata transfer latency
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent extracts and transfers only the essential compressed vertex data from CPU to GPU, eliminating the need to transfer redundant vertex information. The compressed vertex buffer contains only unique vertex attributes with compact indices, significantly reducing the amount of data that needs to be transferred and thereby reducing latency.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary compression of vertex data on the CPU side before transfer to the GPU. By pre-compressing the vertex buffer and organizing it in an efficient format, the patent minimizes the data transfer requirements and preparation time on the GPU side, reducing overall latency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11869123B2Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer
Publication Date: 2024.01.09 ADOBE INC
  • US11869123B2 patent drawing
  • US11869123B2 patent drawing
  • US11869123B2 patent drawing

AI summary

Techniques for rendering two-dimensional vector graphics are described. The techniques include using a central processing unit to generate tessellate triangles along a vector path in which each of the tessellate triangles is represented by a set of vertices. From the tessellate triangles, an index buffer and a compressed vertex buffer are generated. The index buffer includes a vertex index for each vertex of each of the tessellate triangles. The compressed vertex buffer includes a vertex buffer entry for each unique vertex that maps to one or more vertex indices of the index buffer. The index buffer and the compressed vertex buffer are provided to a graphics processing unit to render the vector path with anti-aliasing.