GPU-Based Kd-Tree Construction for Dynamic Ray Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing CPU-based algorithms for kd-tree construction in graphics applications are computationally slow, making them unsuitable for dynamically rendering frequently changing scenes, especially in ray tracing which requires fast and efficient data structures.

Innovation Solution

A GPU-based ray tracer builds a kd-tree for each frame of a dynamic scene by differentiating large nodes from small nodes, splitting large nodes using empty space and spatial median splitting, and splitting small nodes based on computed costs, leveraging parallel processing and optimized memory management to enhance performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU-based algorithms are used for kd-tree construction, then manufacturing precision is maintained, but productivity is significantly reduced

Engineering Contradiction:
Improverendering speedVSAvoidcomputational overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces CPU-based sequential computation with GPU-based parallel computation for kd-tree construction. The graphics hardware utilizes thousands of cores to perform parallel operations on geometric primitives, substituting the traditional mechanical CPU computation model with a parallel graphics processing model that achieves significantly higher throughput for rendering applications.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent segments the kd-tree construction process into distinct phases: building the tree structure, differentiating large and small nodes, and applying different splitting strategies to each node type. This segmentation allows optimized handling of different node categories, with large nodes using empty space splitting and small nodes using cost-based splitting, thereby improving overall construction efficiency.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If uniform splitting strategy is applied to all nodes, then device complexity is reduced, but manufacturing precision deteriorates

Engineering Contradiction:
Improvekd-tree construction qualityVSAvoidsplitting algorithm complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by differentiating between large nodes and small nodes and applying different splitting strategies to each. Large nodes undergo empty space splitting to efficiently eliminate voids, while small nodes use cost-based splitting for precise optimization. This localized approach ensures each node type receives the most appropriate treatment for its specific characteristics, improving overall tree quality.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the splitting parameter strategy based on node size. For large nodes, the splitting criterion focuses on empty space elimination, while for small nodes, the criterion shifts to computed costs. This parameter adaptation allows the algorithm to optimize for different scales, maintaining high construction quality across varying node sizes without requiring a single complex universal strategy.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8963918B2Ray tracing on graphics hardware using kd-trees
Publication Date: 2015.02.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8963918B2 patent drawing
  • US8963918B2 patent drawing
  • US8963918B2 patent drawing

AI summary

Described is a technology by which a ray tracer incorporates a GPU-based kd-tree builder for rendering arbitrary dynamic scenes. For each frame, the ray tracer builds a kd-tree for the scene geometry. The ray tracer spawns and traces eye rays, reflective and refractive rays, and shadow rays. For each ray to be traced, the ray tracer walks through the kd-tree until it reaches leaf nodes and associated triangles. When a ray passes through both sides of a splitting plane, the “far” sub-tree is pushed into the stack and the “near” sub-tree is traversed first.