THREE.JS / FOUNDATIONS 129

One panorama, four lighting contracts.

A PMREM is not the only useful representation of an environment. Compare scene-wide IBL, an explicit material envMap, a diffuse LightProbe, and a combined scene-plus-probe path while the visible backdrop stays independent.

Initializing -

Creating the source, cube capture, PMREM, probe, and grounded-backdrop lifecycle.

backend
-
contract
-
backdrop
-
textures
-
Choose the representationsource -> capture -> derive -> shade
Source panoramawaiting
loader
-
file
-
size
-
bytes
-
GPU type
-
color space
-

The decoded panorama feeds the backdrop and the derived lighting representations.

Cube capturewaiting
target
-
size
-
format
-
GPU type
-
mapping
-
readback
-

The cube target is the bridge required by LightProbeGenerator.fromCubeRenderTarget().

Derived lightingwaiting
PMREM
-
size
-
mapping
-
probe
-
SH coeffs
-
active
-

PMREM stores roughness-aware specular radiance; LightProbe stores diffuse irradiance in nine SH coefficients.

Scene.environmentscene-wide PMREM

Physical materials inherit the scene PMREM and `Scene.environmentRotation`.

material.envMapexplicit PMREM

An explicit envMap wins over Scene.environment and uses `material.envMapRotation`.

LightProbediffuse SH

Diffuse irradiance is reduced to nine spherical-harmonic coefficients and read back from the cube.

Scene + LightProbecombined IBL

Specular PMREM and diffuse probe data coexist, making their ownership and energy additive.

Conversion and render timingwaiting
load ms
-
cube ms
-
probe ms
-
PMREM ms
-
CPU avg
-
CPU p95
-

Load the source and choose a contract before sampling post-conversion shading.

HDR / EXR bytesDataTextureCubeRenderTargetPMREM + LightProbePBR contract

`Scene.environmentRotation` affects scene.environment; it does not rotate a material with an explicit `envMap`. The probe is baked in the cube capture's orientation, so rotating the panorama after baking requires a new capture or rotated SH coefficients.

Sources: GroundedSkybox · LightProbe · LightProbeGenerator · SphericalHarmonics3 · official WebGPU light-probe example · official grounded-environment example