Floating-Point Comparison for Watertight Ray Intersection Tests

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing ray tracing systems face challenges in ensuring watertight and non-redundant intersection tests, particularly when rays intersect shared edges of polygons, leading to rendering errors and performance penalties due to non-deterministic rendering and redundant shader execution.

Innovation Solution

A method and processing module that extends the exponent range of floating point values to handle special cases like zero and infinity by replacing them with substitute values or shifting them to avoid the need for exception handling logic, enabling efficient intersection testing in hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If floating point comparison operations are performed using standard IEEE 754 formats, then the system can represent a huge range of values with relatively few bits, but the system cannot ensure watertight and non-redundant intersection tests when rays intersect shared edges of polygons

Engineering Contradiction:
Improvewatertight and non-redundant intersection testsVSAvoidexception handling logic
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by adding a small epsilon value to floating point comparison operations before determining intersection results. This pre-adjustment prevents rays intersecting shared edges from producing ambiguous or incorrect results, ensuring watertight and non-redundant intersection tests without requiring complex exception handling logic during runtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of floating point comparison by introducing an epsilon offset to the comparison threshold. This parameter modification allows the system to handle edge cases where rays intersect shared polygon edges, transforming unreliable boundary comparisons into reliable deterministic results while maintaining standard floating point hardware operations.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If the system performs intersection testing with high precision to avoid rendering errors, then rendering quality improves, but the computational cost and processing time increase

Engineering Contradiction:
Improveintersection test precisionVSAvoidrendering speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent modifies the comparison parameter by adding a small epsilon value rather than using exact floating point equality. This approach achieves sufficient precision for determining whether rays intersect shared edges while maintaining the efficiency of standard floating point hardware operations, avoiding the computational overhead of arbitrary precision arithmetic.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses a simple, computationally inexpensive epsilon offset approach instead of complex high-precision algorithms. This disposable approximation method provides adequate precision for intersection testing without the heavy computational cost of maintaining exact precision throughout the rendering pipeline.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Productivity

If the system uses standard floating point formats for intersection testing, then hardware implementation is efficient, but rendering errors occur when rays intersect shared edges of polygons

Engineering Contradiction:
Improvehardware efficiencyVSAvoidintersection test accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent changes the comparison parameter by introducing an epsilon offset to floating point comparisons. This simple parameter modification maintains compatibility with standard floating point hardware while eliminating rendering errors that occur when rays intersect shared polygon edges, achieving both hardware efficiency and rendering reliability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies preliminary adjustment by adding epsilon to comparison operations before evaluating intersection results. This pre-computation step prevents erroneous results in hardware implementation without requiring complex exception handling or reducing hardware efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4064033B1Performing operations using floating point values
Publication Date: 2025.11.26 IMAGINATION TECH LTD

AI summary

There is provided a method and a processing module for performing a particular comparison operation using floating point values. The floating point values are received in one or more input formats, such that each floating point value is represented with: (i) a sign bit, (ii) a plurality of bits to indicate an exponent, and (iii) a plurality of bits to indicate a significand. An exponent range of the floating point values is extended. One or more of the following is performed: (a) a floating point value of zero is replaced with a non-zero substitute floating point value whose magnitude is small enough to behave like zero in said particular comparison operation if all other values involved in the particular comparison operation are non-zero finite values that are representable in their input format, wherein said non-zero substitute floating point value has a magnitude that is too small to be representable using the one or more input formats but is representable using the extended exponent range; (b) one or more of the floating point values are shifted by a non-zero amount which is small enough to behave like zero in said particular comparison operation if all other values involved in the particular comparison operation are non-zero finite values that are representable in their input format, wherein said non-zero amount is too small to be representable using the one or more input formats but is representable using the extended exponent range; and (c) a floating point value of infinity is replaced with a finite substitute floating point value whose magnitude is large enough to behave like infinity in said particular comparison operation if all other values involved in the particular comparison operation are non-zero finite values that are representable in their input format, wherein said finite substitute floating point value has a magnitude that is too large to be representable using the one or more input formats but is representable using the extended exponent range. The particular comparison operation is performed using one or more of: (i) the non-zero substitute floating point value, (ii) the one or more shifted floating point values, and (iii) the finite substitute floating point value. A result of the particular comparison operation is outputted.