Skip to main content

Deferred renderer

This page describes the deferred renderer selected by an ANARIFrame. See cameras, renderers, and frames for shared parameters and frame lifecycle.

const renderer = anariDevice.newRenderer('deferred', {
ambientRadiance: 0.08,
background: [0.006, 0.008, 0.018, 1]
});

deferred is a WebGPU-only alternate renderer that writes committed ANARI surfaces into a shared GBuffer, then resolves opaque PBR lighting with the experimental deferredLighting shader pass. It currently supports base color, normal, metallic-roughness, emissive, and occlusion maps, plus ambient, directional, point, and spot lights. Scenes containing spot lights use the shared forward fallback so their cone attenuation is preserved.

Its compact G-buffer uses four color attachments: HDR scene color (rgba16float), normal and roughness (rgba8unorm), base color and metallic (rgba8unorm), and HDR emissive color with occlusion (rgba16float). WebGPU charges eight render-target bytes for each format, totaling the default CORE limit of 32 bytes per sample. No elevated device limits or featureLevel: 'max' are required. The omitted velocity target previously contained only zeroes; HDR, physically based material channels, direct lighting, and emissive output remain intact.

The deferred path is intended as an architecture baseline for richer ANARI renderers. It does not yet include the full Deferred Illumination Lab chain such as clustered light bins, GTAO, SSGI, SSR, velocity history, or bloom.