Parallel Scene Graph Rendering Engine for High Frame Rates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current rendering engines have limited support for parallel processing, as they typically use a single scene graph for all stages of the rendering process, leading to unnecessary dependencies that restrict parallel computations and fail to fully utilize the parallel processing capabilities of modern hardware.

Innovation Solution

Implementing a parallel scene graph structure for each processing stage, where batches of jobs are processed in parallel, eliminating unnecessary dependencies and allowing for more efficient parallel processing by utilizing the specific dependencies of each stage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single scene graph is used for all rendering stages, then the system structure is simple and easy to manage, but parallel processing capabilities are restricted due to unnecessary dependencies

Engineering Contradiction:
Improvesystem structureVSAvoidparallel processing capability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the single scene graph into multiple processing stage-specific scene graphs. Each scene graph is segmented to contain only the objects and dependencies relevant to its specific processing stage, eliminating unnecessary cross-stage dependencies and enabling independent parallel processing of each stage.

Inventive Principle:
Principle #1Segmentation

2Reliability

If processing stages are executed sequentially to maintain dependency order, then data consistency is ensured, but processing speed decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The rendering process is segmented into independent processing stages, each with its own scene graph. This segmentation allows stages to be executed in parallel while maintaining internal consistency within each stage, as each stage's scene graph contains only the necessary dependencies for that specific stage.

Inventive Principle:
Principle #1Segmentation

3Productivity

If ad-hoc parallelization methods are used, then some parallel processing is achieved, but full hardware parallel processing capabilities are not utilized

Engineering Contradiction:
Improveparallel processing capabilityVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic scene graphs that are specifically constructed for each processing stage, allowing the data structure to adapt to the parallel processing requirements of modern hardware. Each stage's scene graph is dynamically optimized to maximize parallel execution potential while maintaining only necessary dependencies.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20200151846A1Parallel rendering engine
Publication Date: 2020.05.14 ADOBE INC
  • US20200151846A1 patent drawing
  • US20200151846A1 patent drawing
  • US20200151846A1 patent drawing

AI summary

This application relates generally to parallel computer processing, and more specifically, to parallel processing within a rendering engine via parallel scene graphs. One or more parallel scene graphs or parallel data graphs may be provided to a rendering engine. The rendering engine may identify dependencies within the parallel data structures and process, in parallel, one or more aspects of a the parallel data structure.