Anti-aliased rendering using alpha blending and object grouping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional anti-aliasing techniques require significant memory and memory bandwidth, making them inefficient under severe memory constraints, and they often necessitate multiple intermediate renderings.

Innovation Solution

The method involves partitioning objects into groups sharing common edges, depth-ordering them, and rendering them from back to front, using alpha values to attenuate and blend pixel colors, reducing memory usage and bandwidth requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If multiple color buffers are used for anti-aliasing, then anti-aliased rendering quality is improved, but memory usage and memory bandwidth requirements increase significantly

Engineering Contradiction:
Improveanti-aliased rendering qualityVSAvoidmemory usage
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential anti-aliasing information (alpha values representing coverage proportions) from the traditional multi-buffer approach, storing them in a single buffer rather than maintaining multiple complete color buffers. This extraction reduces memory usage while preserving the core anti-aliasing functionality through selective retention of critical data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of storing multiple complete color buffers and averaging them, the patent inverts the approach by storing a single buffer of alpha values that represent coverage proportions, then using these alpha values to blend colors during rendering. This inversion fundamentally changes the data structure from multiple full-resolution color buffers to a compact alpha representation.

Inventive Principle:
Principle #13The other way round (Inversion)

2Manufacturing precision

If a large buffer of size S×N is used for anti-aliasing, then anti-aliased rendering is achieved, but memory bandwidth consumption increases

Engineering Contradiction:
Improveanti-aliased rendering qualityVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent changes the fundamental parameter of what is stored in the buffer - from storing complete color values for multiple samples (S×N size) to storing only alpha coverage values (S size). This parameter change reduces memory bandwidth consumption by an factor of N while maintaining anti-aliasing quality through the use of these alpha values in the blending equation.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If objects are rendered individually without grouping, then rendering flexibility is maintained, but rendering speed decreases due to repeated processing of overlapping areas

Engineering Contradiction:
Improverendering flexibilityVSAvoidrendering speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges objects that share common edges into groups, processing them collectively rather than individually. This merging allows the system to compute alpha values and perform blending operations once for the entire group, eliminating redundant processing of overlapping boundary areas while maintaining the ability to handle different object types and configurations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7733354B1Anti-aliased rendering
Publication Date: 2010.06.08 ADOBE INC
  • US7733354B1 patent drawing
  • US7733354B1 patent drawing
  • US7733354B1 patent drawing

AI summary

Methods, systems and apparatus, including computer program products, for anti-aliased rendering. A plurality of objects is received. Each object in the plurality of objects is depth-ordered. Each object is rendered from back to front into a plurality of pixels. Each pixel in the plurality of pixels has a respective color value. The rendering includes selecting an object from the plurality of objects. Respective alpha values are determined for first pixels in the plurality of pixels based on coverage of the first pixels by the selected object. The respective color value of each of the first pixels is attenuated based on the respective alpha values. The respective color value of each of the first pixels is added to based on the respective alpha values and one or more color properties associated with the selected object.