Demand-Based Texture Rendering in Tile-Based Graphics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In real-time computer graphics, the rendering of textures for techniques like environment mapping and shadow mapping consumes significant memory bandwidth, with much of the rendered data not being subsequently used, leading to inefficiencies in tile-based rendering systems.
Innovation Solution
Implementing a demand-based texture rendering system where the rasterization of dynamically rendered texture surfaces is deferred until they are referenced, allowing only required texture tiles to be rendered and stored in a small write-back cache for immediate use, reducing memory bandwidth and processing overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all texture surfaces are pre-rendered and stored in memory, then texture data is available for immediate use, but memory bandwidth is significantly consumed and much rendered data remains unused
Solution Approach 1:
The system performs preliminary tiling of texture surfaces without full rasterization, preparing only the structural framework in advance. The actual pixel-level rendering is deferred until the texture is actually referenced during scene rendering, ensuring that rendering effort is concentrated only on the portions of textures that will be used.
Solution Approach 2:
The invention extracts and separates the tiling phase from the rasterization phase. Tiling (dividing texture into tiles) is performed in advance, while rasterization (actual pixel rendering) is extracted and deferred to occur only when and where needed during scene rendering, removing unnecessary rendering work from the pre-processing stage.
2Manufacturing precision
If large texture maps are rendered for shadow mapping and environment mapping, then rendering quality is improved, but memory bandwidth consumption increases significantly
Solution Approach 1:
The texture surfaces are segmented into multiple rectangular tiles, allowing the system to selectively render only the specific tiles that are actually needed for shadow mapping or environment mapping. This segmentation enables partial rendering of large textures rather than rendering the entire texture map, maintaining quality where needed while reducing overall memory bandwidth consumption.
Solution Approach 2:
Instead of rendering complete large texture maps, the system performs partial rendering by generating only the specific texture tiles that are required for the current scene's shadow mapping or environment mapping needs. This partial action approach maintains necessary rendering quality while avoiding the excessive memory bandwidth consumption of rendering unused texture portions.
3Quantity of substance
If texture data is stored in external memory, then large texture maps can be maintained, but access speed and memory bandwidth are limited
Solution Approach 1:
The system implements a nested memory hierarchy where recently accessed or currently needed texture tiles are loaded into an on-chip cache (faster memory) from external memory (slower but larger capacity). This nesting allows the system to maintain large texture data capacity in external memory while providing fast access speeds for the specific tiles that are actively being used during scene rendering.
Solution Approach 2:
The invention applies local quality optimization by ensuring that texture tiles currently being rendered are kept in the on-chip cache subsystem rather than being repeatedly fetched from external memory. This local optimization of data placement ensures that the specific portion of texture data that is actively needed has fast access, while other portions remain in external memory.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method and apparatus are provided for shading and texturing computer graphic images in a tile based rendering system using dynamically rendered textures. Scene space geometry is derived for a dynamically rendered texture and passed to a tiling unit which derives scene space geometry for a scene which references the textures. Scene space geometry for a scene that references the dynamically rendered texture is also derived and passed to the tiling unit. The tiling unit uses object data derived from the scene space geometry to detect reference to areas of dynamically rendered textures, as yet un-rendered. These are then dynamically rendered.