Rendering Buffer Ordering for Cyclic Dependency Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing digital image rendering technologies face challenges in efficiently managing cyclic dependencies between render targets, leading to burdensome manual analysis, errors, and insufficient performance when rendering complex scenes with effects like reflection, refraction, and shadows.

Innovation Solution

Automatically determining a topological order for render targets with cyclic dependencies using a dependency graph, which allows for the reuse of contents from previous frames to break cyclic dependencies and optimize the rendering order, thereby minimizing unnecessary buffer switches and state changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual analysis and hard-coding of rendering order is used, then developers can control the rendering process, but the task becomes burdensome and prone to errors

Engineering Contradiction:
Improverendering correctnessVSAvoiddeveloper burden
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system automatically determines the rendering order by analyzing dependencies between render targets itself, without requiring developer intervention. The rendering order determination module autonomously processes the scene graph, identifies cyclic dependencies, and generates the optimal rendering sequence, making the system self-sufficient in resolving complex rendering dependencies.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the manual mechanical process of analyzing and hard-coding rendering orders with an automated computational system. The system uses graph theory algorithms to automatically analyze dependencies and determine rendering sequences, substituting human cognitive effort with machine-based automated dependency resolution.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If manual analysis and hard-coding of rendering order is used, then developers can control the rendering process, but performance is insufficient

Engineering Contradiction:
Improverendering performanceVSAvoidmanual process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically determines the rendering order based on the actual dependencies present in each scene, rather than using fixed hard-coded sequences. The rendering order determination adapts to different scene configurations by automatically analyzing the scene graph and adjusting the rendering sequence accordingly, enabling optimal performance for varying complexity levels.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of rendering order from a static hard-coded value to a dynamically computed sequence based on dependency analysis. By altering how the rendering order is determined (from manual specification to automated calculation), the system achieves improved performance without increasing device complexity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If cyclic dependencies are not broken, then all render targets can be rendered, but the rendering process cannot proceed due to circular references

Engineering Contradiction:
Improverendering completionVSAvoiddependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system extracts cyclic dependencies from the scene graph by identifying strongly connected components and separating them into acyclic subgraphs. By removing the cyclic portions and handling them separately (using previous frame contents), the system enables the main rendering pipeline to proceed without circular reference blocks while maintaining overall scene integrity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system uses previous frame contents as an intermediary to resolve cyclic dependencies. When a cyclic dependency is detected, the renderer substitutes the current frame's render target with the corresponding render target from the previous frame, breaking the circular reference and allowing rendering to proceed. This intermediary approach maintains visual continuity while resolving the computational deadlock.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9508181B2Ordering and rendering buffers for complex scenes with cyclic dependency
Publication Date: 2016.11.29 ADOBE INC
  • US9508181B2 patent drawing
  • US9508181B2 patent drawing
  • US9508181B2 patent drawing

AI summary

A method, system, and computer-readable storage medium are disclosed for rendering a scene with render targets having instances of cyclic dependency. A dependency graph for a plurality of render targets in a scene may be determined automatically. A plurality of strongly connected components in the dependency graph may be determined automatically. Each of the plurality of strongly connected components may comprise one or more of the plurality of render targets. A topological order for the plurality of strongly connected components may be determined automatically. The scene may be rendered based on the topological order using the plurality of render targets.