Frustum Rendering for Shadow Map Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In 3D graphics processing, the generation and storage of large shadow maps require significant memory and processing power, leading to high memory bandwidth consumption and power usage, which hinders GPU performance and efficiency.

Innovation Solution

A tile-based graphics processing system that tiles a scene into subsets of tiles based on a frustum model and object primitives, allowing only relevant tiles to be rendered and stored as a shadow map, reducing memory allocation and processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If high resolution shadow maps are generated and stored, then shadow quality is improved, but memory usage and memory bandwidth consumption increase significantly

Engineering Contradiction:
Improveshadow qualityVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The shadow map is divided into multiple tiles, each representing a portion of the light's view frustum. Only tiles containing shadow-casting objects are rendered and stored, while empty tiles are omitted. This segmentation allows high-resolution shadow maps to be generated with reduced memory usage by excluding unnecessary tile data.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If high resolution shadow maps are generated, then shadow quality is improved, but processing power and time consumption increase

Engineering Contradiction:
Improveshadow qualityVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system extracts and identifies only the relevant tiles from the light's view frustum that contain shadow-casting objects using frustum culling and tile identification techniques. By taking out only the necessary tiles for rendering, the system maintains high shadow quality while reducing processing time and computational overhead associated with rendering entire high-resolution shadow maps.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If large textures are allocated for shadow maps, then shadow rendering quality is improved, but available memory for other applications decreases

Engineering Contradiction:
Improveshadow rendering qualityVSAvoidmemory availability
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

Instead of uniformly allocating memory for the entire shadow map, the system applies local quality by allocating memory only for specific tiles that contain shadow-casting objects. Each tile receives high-resolution treatment where needed, while empty regions consume no memory. This approach maintains high shadow rendering quality in relevant areas while significantly improving memory availability for other applications.

Inventive Principle:
Principle #3Local quality

4Use of energy by moving object

If data transfer between GPU and memory is reduced, then power consumption decreases, but shadow map resolution may be compromised

Engineering Contradiction:
Improvepower consumptionVSAvoidshadow map resolution
Core Design Contradiction:
Use of energy by moving objectVSMeasurement precision

Solution Approach 1:

The system performs preliminary identification of tiles containing shadow-casting objects before rendering the shadow map. By pre-processing the scene to determine which tiles are relevant, the system can transfer only the necessary tile data between GPU and memory, reducing power consumption while maintaining high shadow map resolution for the identified relevant tiles.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3614344B1Frustum rendering
Publication Date: 2024.05.22 IMAGINATION TECH LTD
  • EP3614344B1 patent drawingFigure 1
  • EP3614344B1 patent drawingFigure 2a~2b
  • EP3614344B1 patent drawingFigure 2c~2d

AI summary

A graphics processing system for generating a render output for use in a subsequent render comprising: a tiling unit configured to tile a first view of a scene into a plurality of tiles; a processing unit configured to identify a first subset of the tiles that are associated with regions of the scene that are viewable in a second view, the second view being a point of view of the subsequent render, and wherein the first subset of tiles are identified in dependence on a frustum model comprising primitives representing a view frustum of the second view; and a rendering unit configured to render to a render output each of the identified tiles.