Object-Oriented Shading Data Grouping for SIMD Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The process of rendering animated geometric model scenes in computer graphics is time-consuming due to the inefficiencies in processing object-oriented representations, particularly when per-point data has different subclasses, which negates the advantages of SIMD interpretation in shader languages.

Innovation Solution

Assigning computer graphics data into object-oriented classes and subclasses, sorting and grouping them based on shared attributes, and using SIMD operators separately for each group to optimize processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If per-point data is processed using object-oriented classes with different subclasses in a SIMD shading language, then programming expressiveness and flexibility are improved, but processing efficiency deteriorates because virtual methods require different code to be executed at each point, negating the advantages of SIMD interpretation

Engineering Contradiction:
Improveprogramming expressivenessVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the per-point data into distinct groups based on their class and subclass assignments. By organizing data into homogeneous groups where all elements share the same virtual method implementation, the system enables efficient SIMD processing of each group while maintaining the flexibility of object-oriented programming. This segmentation allows the shading language to process different data types through unified instructions without the overhead of virtual method dispatch for each individual point.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If conventional SISD architecture is used for shading, then per-point processing flexibility is maintained, but processing time increases significantly compared to SIMD architecture

Engineering Contradiction:
Improveper-point processing flexibilityVSAvoidrendering time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary classification of per-point data into object-oriented classes and subclasses before the actual shading computation. This pre-grouping action organizes the data structure in advance, enabling the subsequent SIMD processing to operate on homogeneous data groups without requiring complex runtime dispatch decisions. The preliminary action of classifying and grouping data allows the system to leverage SIMD's parallel processing capabilities while maintaining the flexibility needed for diverse data types.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8970588B1System and methods for implementing object oriented structures in a shading language
Publication Date: 2015.03.03 PIXAR CORP
  • US8970588B1 patent drawing
  • US8970588B1 patent drawing
  • US8970588B1 patent drawing

AI summary

The efficiency of shading and rendering processes can be improved through implementing object oriented programming for shading program languages. Computer graphics data representing a geometric model in a scene are determined and assigned to object oriented classes and subclasses and are subsequently sorted and grouped into several (e.g., two or more) groups based on the classification information. Once the computer graphics data are assigned in a class and/or subclasses and grouped, a shader interpreter implements SIMD operators on each group of data values.