THREE.JS / FOUNDATIONS 138

Three paths to IBL.

Hold the lighting context steady while swapping its source: a real HDR/EXR file, a PMREM captured from a scene, or a live CubeCamera capture. The bench makes source fidelity, probe generation, and derived-resource ownership measurable.

Initializing -

Preparing real-file and scene-capture IBL pipelines.

source
-
pipeline
-
lighting model
-
probe
-
graph builds
-
draws
-
triangles
-
capture ms
-
PMREM ms
-
CPU avg
-
CPU p95
-
textures
-
Source and context contractready

Model and capture ownership changes wait for an explicit rebuild; gain and AO update uniforms.

Representation graphwaiting
source->capture->PMREM + LightProbe->LightingContextNode

The selected pipeline has not been built.

Resource ownershipwaiting

Decoded files, cube captures, PMREM radiance, and probe irradiance are tracked independently.

Raw equirectangular-
Capture scene-
Cube target-
PMREM radiance-
Diffuse LightProbe-
Conversion timingwaiting
load ms
-
capture ms
-
probe ms
-
PMREM ms
-
frames
-
source status
waiting

Load a source, choose a context, and sample post-conversion shading.

The real-file path uses HDRLoader/EXRLoader plus PMREMGenerator.fromEquirectangular(). Scene and cube paths contrast fromScene() with CubeCamera.update() and fromCubemap(); all probe paths use LightProbeGenerator.fromCubeRenderTarget(). Use ?forceWebGL=1 for the forced WebGL2 route.

Review raw cube and PMREM filtering ->
LAB 138 / IBL SOURCE FIDELITY