Interactive explanation

Make a time-slice blend obey paint order

Drag or play the blend, reverse the paint order, then add a third slice. The left image uses desired weights as opacities; the right solves the actual source-over schedule. This small live lab loads no scene or video.

Teaching model · not native output
Live composition · no large asset download
—naive background contribution
—solved visible weight of A
—solved visible weight of B
Alphas are not visible weights.

A layer is attenuated by every layer above it. With A below B, αA = 1 − β and αB = β leaves β(1 − β) of the background visible. At the midpoint, the leak is 25%. Purple checks belong only to the backdrop; neither opaque slice contains them.

wj = αj ∏m>j (1 − αm)

Solve in the actual order.

Keep the lower layer opaque; set the upper layer’s alpha to its desired visible weight. For three or more layers, work from the top down: divide each target weight by the transmittance left by the layers above. A zero remainder means the lower layers are hidden, so their alpha can be zero. αj = wj / (1 − Σm>j wm)

Reversing the order changes the alphas, not the solved visible weights. This assumes full-coverage slices whose target weights sum to one. The slices here are synthetic linear RGB fields, converted to sRGB only for display; baked tone-mapped images have a different interpolation contract.

Derived from the time-slice export section of RIVX’s EXPORT-MANUAL.md. This models compositing algebra, not a native transport solve or an official-runtime playback test. Playback follows the display refresh (60 fps target); it pauses when this panel leaves view.