THREE.JS / FOUNDATIONS 236

Make transparency stop popping.

Weighted blended order-independent transparency accumulates transparent fragments per pixel, so intersecting surfaces do not depend on a fragile draw order.

Initializing OIT—

Preparing intersecting planes, orbiting glass spheres, and the opaque beauty target…

backend
—
strategy
—
surfaces
—
opacity
—
frame ms
—
Transparency controlswaiting

The pass will compile after the renderer selects its backend.

Weighted blended OIT contractMRT
accumweighted color sum

Σ color × alpha × weight

revealagesingle-channel product

Π (1 − alpha)

depthisolated OIT target

depth-test, no depth-write

resolveper-pixel composite

mix(accum / alpha, beauty, revealage)

orderingfragment invariant

draw order independent

fallbackWebGL2 reference

camera-sorted transparency

Three planes intersect at the center and orbiting spheres cross one another. Toggle the compositor to compare a per-object camera sort with weighted accumulation.

WebGPU executes the OIT pass. The forced WebGL2 route keeps the same scene and controls but intentionally uses the normal sorted transparency path.

Derived from the official OIT example, RenderPipeline, PassNode, MRTNode, and RenderTarget contracts. Use ?forceWebGL=1 to inspect the labeled baseline.

LAB 236 / ORDER-INDEPENDENT TRANSPARENCY