Semi-transparent Surface Rendering via Draw-order and Z-buffer Transparency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for rendering 3-D models with semi-transparent surfaces are inefficient, particularly for complex models with intersecting surfaces, as they require time-consuming geometry sorting and often result in aliasing artifacts, and are not compatible with full-screen anti-aliasing mechanisms.

Innovation Solution

Rendering semi-transparent surfaces in draw-order instead of depth-order, using a Z-buffer to calculate cumulative transparency values and attenuate surface colors, while performing stencil tests and occlusion queries to optimize the process without the need for additional Z-buffers or geometry sorting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If geometry sorting is performed to establish depth-ordering for rendering semi-transparent surfaces, then rendering accuracy is improved, but rendering time and processing complexity increase significantly

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

Solution Approach 1:

The patent inverts the conventional rendering approach by rendering surfaces in draw-order (front-to-back) instead of the traditional depth-order (back-to-front). This inversion eliminates the need for time-consuming geometry sorting while maintaining rendering accuracy through cumulative transparency calculations performed in a second pass.

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

Solution Approach 2:

The patent performs a preliminary rendering pass to establish Z-buffer depth information before performing the final rendering with transparency calculations. This preliminary action enables accurate transparency rendering without requiring pre-sorting of geometry, as the Z-buffer provides the necessary depth information during the final pass.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If full-screen anti-aliasing is implemented for opaque surfaces, then aliasing artifacts are eliminated, but computational overhead and memory bandwidth increase

Engineering Contradiction:
Improvealiasing qualityVSAvoidrendering efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent merges the transparency rendering process with the full-screen anti-aliasing mechanism by using the same multi-sample buffer infrastructure. The cumulative transparency calculation leverages the existing anti-aliasing samples, eliminating the need for separate anti-aliasing passes and reducing overall computational overhead.

Inventive Principle:
Principle #5Merging (Combining)

3Manufacturing precision

If multiple Z-buffers are used to store depth information for transparency calculations, then rendering accuracy is improved, but memory bandwidth and storage requirements increase

Engineering Contradiction:
Improvetransparency rendering accuracyVSAvoidmemory bandwidth
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent makes the single Z-buffer serve multiple functions: it stores depth information for both opaque surface rendering and semi-transparent surface transparency calculations. This multi-functionality eliminates the need for separate depth buffers while providing all necessary depth information for accurate transparency rendering through cumulative calculations.

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

Data Source

PatentEP1785942B8Method and apparatus for rendering semi-transparent surfaces
Publication Date: 2019.06.26 ADOBE INC

AI summary

A system that renders a three-dimensional model which contains semi-transparent surfaces. During operation, the system renders the semi-transparent surfaces in the three-dimensional model by performing the following operations iteratively for each semi-transparent surface in draw-order instead of depth-order: (1) rendering the semi-transparent surface to a Z buffer, (2) calculating a cumulative transparency value for each pixel of the semi transparent surface as a function of the transparency value for each opaque and semi-transparent surface that intersects the pixel and is in front of the Z-value for the pixel in the Z-buffer, (3) attenuating a surface color value for each pixel in the semi-transparent surface by the cumulative transparency value for the pixel, and (4) adding the attenuated surface color value to a corresponding pixel value in the image buffer.