Pixel Shader De-indexing Geometry via Texture Lookup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer graphics technologies face inefficiencies in processing and rendering scenes defined by large numbers of geometric primitives, which require significant data processing and storage, particularly due to the need for vertex indexing and de-indexing processes.

Innovation Solution

The method involves performing texture lookups in index and vertex buffers to obtain vertex index values and corresponding vertex data, repeating these lookups for each vertex, and using this data to rasterize geometric primitives within a pixel shader or rasterizer, thereby eliminating the need for dedicated de-indexing hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of substance

If vertex indexing is used to reduce data storage, then data redundancy is reduced, but additional de-indexing processing steps are required

Engineering Contradiction:
Improvedata redundancyVSAvoidprocessing steps
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent combines the de-indexing operation with the existing texture sampling operation by performing both functions within the texture unit. The vertex index lookup and vertex data lookup are merged into a single unified operation that retrieves both pieces of information simultaneously, eliminating the need for separate processing steps and reducing overall system complexity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The texture unit is enhanced to perform multiple functions: it can perform both traditional texture sampling and vertex index/vertex data lookups using the same hardware resources. This multi-functionality allows the system to handle indexed geometry without requiring dedicated de-indexing hardware, thereby reducing device complexity while maintaining the benefits of vertex indexing for data compression.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If dedicated de-indexing hardware is added, then processing speed improves, but device complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware components
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The texture unit is designed to perform both traditional texture sampling and vertex data retrieval operations using the same hardware circuitry. By making the texture unit universal, the system achieves fast processing of indexed geometry without adding dedicated de-indexing hardware, thus maintaining high productivity while avoiding increased device complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the de-indexing function with the existing texture sampling function in the same hardware unit. This combination allows the system to process vertex indices and retrieve vertex data at the same speed as traditional texture operations, eliminating the need for separate hardware components while maintaining processing speed.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If vertex data is stored completely for each primitive, then rendering efficiency improves, but data storage requirements increase

Engineering Contradiction:
Improverendering efficiencyVSAvoiddata storage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments vertex data into two separate storage components: compact vertex indices that reference shared vertices, and the actual vertex data stored once per unique vertex. This segmentation allows the system to store complete vertex data when needed for rendering efficiency while minimizing overall storage requirements by avoiding duplication of shared vertex information across multiple primitives.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7439983B2Method and apparatus for de-indexing geometry
Publication Date: 2008.10.21 SONY INTERACTIVE ENTERTAINMENT LLC
  • US7439983B2 patent drawing
  • US7439983B2 patent drawing
  • US7439983B2 patent drawing

AI summary

A pixel shader is operated to perform a first texture lookup in an index buffer to obtain a vertex index value for a geometric primitive to be displayed. The pixel shader is also operated to perform a second texture lookup in a vertex buffer to obtain vertex data, wherein the vertex data corresponds to the previously obtained vertex index value for the geometric primitive to be displayed. The first and second texture lookups are repeated by the pixel shader such that vertex data is obtained for each vertex required to define the geometric primitive to be displayed. The pixel shader is then operated to rasterize the geometric primitive to be displayed, wherein the rasterizing is performed using the vertex data previously obtained by the pixel shader.