Hybrid Ray Marching and Tracing for Real-Time Reflections

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for rendering reflections in computer graphics, such as ray tracing, are computationally expensive and not suitable for real-time applications like video games, resulting in poor quality reflections in these contexts.

Innovation Solution

A hybrid method combining ray marching and ray tracing, where ray marching is used to attempt to find reflections within the viewport and ray tracing is employed when marching fails, allowing for real-time rendering of reflections by re-casting rays into the full 3D scene.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If ray tracing techniques are used to render reflections, then reflection quality is improved, but rendering time increases significantly

Engineering Contradiction:
Improvereflection qualityVSAvoidrendering time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent segments the reflection rendering process into two distinct phases: a coarse sampling phase that captures major reflection features, and a fine sampling phase that refines specific regions. This segmentation allows the system to achieve high reflection quality without requiring exhaustive sampling of all possible ray paths, thereby reducing overall rendering time while maintaining visual fidelity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-identifying and storing important reflection features (such as specular highlights and dominant reflection paths) during an initial coarse sampling pass. These pre-identified features are then used to guide subsequent fine sampling, eliminating the need to rediscover them and significantly reducing the total computational time required for high-quality reflection rendering.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If ray tracing is used for real-time applications, then reflection quality improves, but computational cost becomes prohibitive

Engineering Contradiction:
Improvereflection qualityVSAvoidcomputational efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent applies partial action by performing ray tracing only in regions and at levels of detail where it is most beneficial for reflection quality. Instead of uniformly applying expensive ray tracing algorithms across the entire scene, the system selectively applies them to specific pixels or regions that require high-fidelity reflections, while using more efficient approximation methods elsewhere, thereby achieving computational efficiency without sacrificing essential reflection quality.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent dynamically changes sampling parameters (such as the number of rays per pixel, recursion depth, and sampling density) based on local scene characteristics, surface properties, and importance metrics. This adaptive parameter adjustment allows the system to allocate computational resources efficiently, using more rays and deeper recursion only where necessary for visual accuracy, while using fewer resources in less critical areas, thus improving overall computational efficiency.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10818079B2Systems and methods for rendering reflections
Publication Date: 2020.10.27 ELECTRONIC ARTS INC
  • US10818079B2 patent drawing
  • US10818079B2 patent drawing
  • US10818079B2 patent drawing

AI summary

Embodiments of the disclosure provide systems and method for rendering reflections. To add reflections to a pixel in an image, ray marching is used to attempt to find a ray intersection for primary reflections. When using rasterization to render a scene, objects outside the viewport are culled. As such, ray marching may fail in various situations, such as when a ray marched ray exits the viewport without intersecting any other object of the scene. In such a situation where ray marching fails, the ray can be re-cast as a ray traced ray. The ray traced ray is cast into the full 3D (three-dimensional) scene with all objects present (i.e., objects are not culled). Ray tracing is then used to attempt to find a ray intersection, i.e., for a primary reflection. The disclosed embodiments can be used in real-time or near-real time applications, such as video games.