Tile-Based Sparse Rendering for Shadow Map Memory Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing 3D graphics processing systems face significant memory and processing overheads due to the generation and storage of large textures like shadow maps, which require substantial memory allocation and high memory bandwidth, leading to increased power consumption and reduced application performance.
Innovation Solution
A tile-based graphics processing system that tiles a scene into multiple tiles, identifies a subset of tiles with a predetermined number of primitives, and allocates memory only to those tiles, while ignoring and not rendering tiles without sufficient primitives, thereby reducing memory and processing overheads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If large textures like shadow maps are generated and stored at high resolution, then rendering quality is improved, but memory allocation and memory bandwidth requirements increase significantly
Solution Approach 1:
The patent divides the scene into multiple tiles and processes each tile independently. Instead of generating and storing a complete high-resolution shadow map for the entire scene, the system generates smaller shadow maps for individual tiles that contain primitives, significantly reducing total memory allocation while maintaining rendering quality in visible areas.
Solution Approach 2:
The system applies different processing quality to different regions of the scene based on their importance. Tiles containing primitives receive full rendering processing with high-quality shadow maps, while tiles without primitives use simplified processing or default values, optimizing memory usage by focusing resources on locally relevant areas.
2Measurement precision
If high resolution shadow maps are generated, then shadow rendering accuracy is improved, but processing power and time requirements increase
Solution Approach 1:
The patent segments the shadow map generation process into tile-level operations. By processing small tiles independently and only for tiles containing primitives, the system achieves high shadow rendering accuracy in relevant areas while dramatically reducing total processing time compared to generating a complete high-resolution shadow map for the entire scene.
Solution Approach 2:
The system performs partial action by generating shadow maps only for tiles that contain primitives rather than processing the entire scene. This selective approach maintains shadow rendering accuracy where needed while avoiding unnecessary processing in empty or irrelevant areas, improving overall processing efficiency.
3Measurement precision
If data transfer between memory and GPU is increased to support large textures, then texture quality is improved, but power consumption increases
Solution Approach 1:
The patent reduces power consumption by segmenting texture data into tile-specific shadow maps that are much smaller than a complete scene shadow map. This reduces the volume of data transferred between memory and GPU, maintaining texture quality for visible tiles while minimizing energy-consuming data transfers.
4Productivity
If memory bandwidth is increased to support large texture transfers, then rendering performance is improved, but hardware complexity and cost increase
Solution Approach 1:
The patent achieves better rendering performance without increased hardware complexity by segmenting the shadow map into small tile-specific data sets. This reduces the memory bandwidth requirement, allowing existing hardware to achieve high rendering performance for visible areas without needing upgraded memory subsystems.
Data Source
AI summary
A graphics processing system includes a tiling unit configured to tile a scene into a plurality of tiles. A processing unit identifies tiles of the plurality of tiles that are each associated with at least a predetermined number of primitives. A memory management unit allocates a portion of memory to each of the identified tiles and does not allocate a portion of memory for each of the plurality of tiles that are not identified by the processing unit. A rendering unit renders each of the identified tiles and does not render tiles that are not identified by the processing unit.


