ReadonlyscreenThe pass-B quad (a scene member only between pass B's start and its finally).
ReadonlyrestoreThe pass-C colour-restore quad, MSAA on WebGL only (same transient membership).
ReadonlyglassThe private scene pass G renders: depth-only proxies of the refracting glass.
ReadonlyblitThe blit scene (one quad, orthographic camera), WebGL only.
ReadonlyglassThe glass front-face depth target, wrapping the shared depth texture.
Private ReadonlyblitPrivate ReadonlyblitPrivate ReadonlycopyPrivate ReadonlydepthPrivate ReadonlyemptyPrivate ReadonlyproxiesPrivate ReadonlyapiPrivate ReadonlycollectPrivate ReadonlycollectPrivate ReadonlysetReadonlytransmissionPass B's transmission target scale (see the module doc).
Frames in which the split ran; the partition E2E spec reads it through the manager.
render() calls the last split frame issued (4, 5 or 6 by backend and MSAA).
PrivateneedsPrivatewarnedPrivate ReadonlyglassPrivate ReadonlyunpartitionedPrivate ReadonlymaskPrivate ReadonlyunpartitionedWhether this renderer needs the copy + quad dance (three's WebGLRenderer).
Follow the HDR target's physical size; the depth texture follows on next bind.
Bind and clear the glass depth target once, so its GPU texture exists at full size before any data material binds the shared depth texture this frame (see the module doc). Idempotent until the next resize.
Render scene into hdrTarget (already bound and cleared by the caller) with the
refracting glass drawn after — and sampling — the data behind it, and the data in
front of it drawn last. Returns false, having drawn nothing, when no visible glass
asks for it (or the one unsupported renderer + MSAA combination is in force), so
the caller renders normally.
PrivateborrowSave every piece of renderer / scene state the passes write, and park the meshes.
PrivaterestoreHand everything back — the partition mode FIRST, so an exception can never leave
the data materials discarding. scene.remove of a quad that is not a child is a
no-op, so the quads need no bookkeeping. The meshes are the frame's scratch lists
(glassScratch / unpartitionedScratch), parallel to the saved-mask lists.
PrivatepassPass G: the refracting glass's front-face depth, via the proxies.
PrivatepassPass A: everything except the refracting glass; data behind-or-none only.
PrivatepassPass B: the glass alone (plus, on WebGL, the copy of pass A behind it as a screen quad) into the HDR target without clearing, at the pass-B transmission scale.
PrivatepassPass C: the data in front of the glass, crisp on top. Under MSAA on WebGL the target's colour was invalidated after pass B, so a fresh copy is repainted first.
Release the targets, including the shared depth texture's GPU resources, and owned helpers.
PrivateblithdrTarget colour → the copy target (WebGL only).
PrivatesyncOne depth-only proxy per refracting glass this frame, sharing its geometry and
carrying its world matrix (the proxies are direct children of an identity scene,
so matrix IS the world matrix). Surplus proxies from a busier frame are hidden.
Privatewarn
Owns the depth target, the copy target, the proxies and the quads; one per manager.