Opacity Testing for 3D Graphics Primitives

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In 3D graphics processing systems, the complexity of processing translucent and punch-through primitives is increased due to the need to handle fragments that may be fully transparent or fully opaque, leading to unnecessary processing and flushing in tile-based deferred rendering systems.

Innovation Solution

An opacity test is performed upfront to determine the opacity state of fragments, allowing for conservative combination and simplification of processing by discarding fully transparent fragments, setting flags for fully transparent fragments, and handling fully opaque fragments as opaque, thereby reducing unnecessary processing and flushing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If translucent and punch-through primitives are processed using standard non-opaque object type handling, then correct rendering of transparent and translucent fragments is achieved, but processing complexity and unnecessary flushing operations increase

Engineering Contradiction:
Improvecorrect rendering of transparent and translucent fragmentsVSAvoidprocessing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary opacity testing before the standard processing pipeline to determine whether fragments are fully opaque, fully transparent, or partially transparent. This early classification allows the system to apply simplified processing paths: fully opaque fragments are handled like standard opaque primitives, fully transparent fragments are discarded, and only partially transparent fragments undergo the complex non-opaque processing. This preliminary action resolves the contradiction by filtering out unnecessary complex processing while maintaining correct rendering for cases where it is needed.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all non-opaque fragments are processed with full complexity, then correct handling of all fragment types is ensured, but unnecessary processing and flushing operations occur

Engineering Contradiction:
Improvecorrect handling of all fragment typesVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by differentiating the processing path based on the specific opacity characteristics of each fragment or group of fragments. Instead of uniformly applying complex non-opaque processing to all fragments, the system locally adapts the processing quality: simple opaque fragments receive minimal processing, fully transparent fragments are discarded, and only fragments requiring translucency handling receive the full complex processing pipeline. This local differentiation maintains correctness where needed while significantly improving overall productivity.

Inventive Principle:
Principle #3Local quality

3Productivity

If opacity testing is performed upfront to simplify processing, then processing efficiency improves, but additional testing operations are introduced

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidadditional testing operations
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent changes the parameter being tested from the traditional per-fragment alpha value to a pre-computed opacity state map that classifies fragments into discrete opacity categories (fully opaque, fully transparent, partially transparent). This parameter transformation allows the system to perform a single lookup operation rather than complex per-fragment transparency calculations, introducing minimal additional testing overhead while achieving significant processing efficiency gains through the resulting simplifications.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9299187B2Opacity testing for processing primitives in a 3D graphics processing system
Publication Date: 2016.03.29 IMAGINATION TECH LTD
  • US9299187B2 patent drawing
  • US9299187B2 patent drawing
  • US9299187B2 patent drawing

AI summary

Non-opaque primitives (e.g. translucent or punch-through primitives) often include some fragments which do not need to be treated as non-opaque fragments. For example, some fragments of a translucent primitive may be entirely opaque or entirely transparent. However, typically, the opacity states (e.g. alpha states) of the fragments are not known until texturing has been applied because it is the texture that includes the opacity information (e.g. the alpha values). However, as described herein, an opacity test is performed up front (e.g. before texturing is applied to fragments of a non-opaque primitive) to see if the processing of the fragments can be simplified. For example, if fragments are fully transparent then they may be discarded. As another example, if fragments are fully opaque then they may be handled as if they have an opaque object type such that the subsequent processing of the fragments is simplified.