Depth Range Buffer for Ray-Casting Clipping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current GPU-based ray-casting methods face inefficiencies in implementing clipping geometries, such as cut-planes and crop-boxes, due to the need for per-sample clipping tests and inefficient passing of clip-plane information, which increases rendering costs and complicates the process.

Innovation Solution

A method that creates a depth range buffer by determining start and end points for each ray, allowing for efficient clipping by restricting ray-casting within defined depth ranges, thereby avoiding per-sample clipping tests and simplifying the passing of clipping information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If per-sample clipping tests are applied in GPU ray-casting, then clipping geometries can be supported, but rendering cost increases and frame rate decreases

Engineering Contradiction:
Improveclipping geometry supportVSAvoidframe rate
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent performs clipping tests in advance before ray-casting by rendering clip-plane polygons and computing depth ranges. This preliminary action determines which rays need clipping and by how much, allowing the main ray-casting loop to proceed without per-sample clipping tests, thus maintaining frame rate while supporting clipping geometries.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary representation using depth ranges and clip-plane polygons as mediators between the clipping geometry definition and the ray-casting process. Instead of directly testing clip-planes for every sample, the system uses these intermediaries to pre-determine clipping requirements, reducing the computational burden during rendering.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If clip-plane information is passed into GPU shader program, then clipping can be implemented, but shader complexity increases and rendering cost increases

Engineering Contradiction:
Improveclipping geometry supportVSAvoidshader program complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the clipping plane information and depth range calculations from the GPU shader program and performs them in the CPU-based preprocessing stage. By taking out these complex operations before rendering, the GPU shader can remain simpler and faster, while still supporting clipping geometries through the precomputed depth range buffer.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If variable number of clip-planes are supported, then flexibility increases, but passing plane parameters to GPU shader becomes difficult and inefficient

Engineering Contradiction:
Improvevariable clip-plane supportVSAvoidparameter passing efficiency
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent performs the complex task of handling variable numbers of clip-planes in advance by rendering all clip-plane polygons and computing depth ranges before the main rendering loop. This preliminary action consolidates the variable parameter handling into a preprocessing stage, making the subsequent GPU rendering process simple and efficient regardless of how many clip-planes are used.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8368692B2Clipping geometries in ray-casting
Publication Date: 2013.02.05 SIEMENS HEALTHINEERS AG
  • US8368692B2 patent drawing
  • US8368692B2 patent drawing
  • US8368692B2 patent drawing

AI summary

A computer implemented method for creating a depth range buffer for supporting clipping geometries for ray-casting includes inputting image data, establishing a depth range buffer for specifying a start and an end point of each ray, computing a near depth of the image data corresponding to the start point of each ray, computing a far depth of the image data corresponding to the end point of each ray, clipping the volume by restricting ray-casting within the start and end points of the depth range buffer, and rendering a portion of the image data corresponding to the visible depth range.