Horizon Split Ambient Occlusion for Real-Time GPU Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for real-time ambient occlusion in graphics rendering face challenges in maintaining high frame rates with complex scenes, often requiring precomputation and resulting in visual artifacts like under-occlusion and over-occlusion, especially when dealing with distant occluders, which increases computational cost.

Innovation Solution

A method that computes ambient occlusion as a fixed-cost postprocessing pass on GPU hardware, using pixel depth and normal values to estimate horizon and normal occlusion terms, allowing for high-quality ambient occlusion rendering without precomputing geometric elements, and can be combined with image rendering with minimal intrusion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If precomputation is used to compute ambient occlusion at vertices or in light maps, then ambient occlusion quality is improved, but frame rate decreases due to scene-dependent precomputation requirements

Engineering Contradiction:
Improveambient occlusion qualityVSAvoidframe rate
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent precomputes horizon profiles from the camera's point of view and stores them in a lookup table before rendering. This preliminary computation separates the expensive precomputation step from the real-time rendering step, allowing high-quality ambient occlusion to be achieved without sacrificing frame rate during actual rendering.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses a depth buffer that copies depth information from the scene rendering, and uses this copied depth data to determine occlusion relationships. Instead of重新computing geometric relationships, the patent copies and reuses depth buffer information for ambient occlusion calculations, significantly reducing computational cost during real-time rendering.

Inventive Principle:
Principle #26Copying

2Reliability

If image-based methods with two ND-buffers are used to capture occlusion from distant occluders, then under-occlusion artifacts are reduced, but device complexity and rendering cost increase

Engineering Contradiction:
Improveocclusion accuracyVSAvoidbuffer requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential depth information needed for ambient occlusion from the depth buffer, rather than maintaining separate buffers for front and back faces. By extracting and reusing depth data intelligently, the patent achieves accurate occlusion detection with a single depth buffer, reducing device complexity while maintaining reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If screen space postprocessing is used to compute ambient occlusion, then real-time rendering is enabled, but visual artifacts like over-occlusion occur due to assuming all samples are visible

Engineering Contradiction:
Improvereal-time rendering capabilityVSAvoidambient occlusion accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies different sampling and computation strategies to different regions of the scene based on local geometric characteristics. By adapting the ambient occlusion computation to local conditions using horizon profiles, the patent reduces over-occlusion artifacts in screen space while maintaining real-time performance.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8878849B2Horizon split ambient occlusion
Publication Date: 2014.11.04 NVIDIA CORP
  • US8878849B2 patent drawing
  • US8878849B2 patent drawing
  • US8878849B2 patent drawing

AI summary

The method includes receiving a plurality of graphics primitives for rendering at a GPU of a computer system and rendering graphics primitives into pixel parameters of the pixels of a display, wherein the parameters include pixel depth values and pixel normal values. For each pixel of the display, an ambient occlusion process is performed. The algorithm takes as input a ND-buffer containing pixel depth values and pixel normals. Based on the pixel 3-D position and the pixel normal vector, horizon heights are computed by sampling the ND-buffer and an occlusion term is computed for each pixel based on the horizon heights. Based on the pixel 3-D position, the pixel normal vector, a normal occlusion term is computed by sampling the ND-buffer above the horizon in multiple directions. An ambient occlusion illumination value is computed by combining the horizon occlusion term and the normal occlusion term.