LAB 159 / PAINT MATRIX

Make the paint contract explicit.

Three ways to put browser UI on a 3D surface: direct HTMLTexture, HTMLMesh’s mutation-aware snapshot, and a manual CanvasTexture fallback.

InitializingPreparing renderer

Preparing the three paint paths and capability probes...

native
-
snapshot
-
fallback
-
paint hook
-
source rev
-
draws
-
Update policymutate / invalidate / redraw

Mutating the DOM does not imply that direct HTMLTexture storage is invalidated; each path exposes its own update signal.

Compatibility matrixmeasuring
pathsourceupdate owner
HTMLTexture-manual / paint
HTMLMesh-MutationObserver
CanvasTexture-application draw

Probe reports whether this browser exposes the paint hook described by HTMLTexture.

Resource ownershipwaiting
Native HTMLTexture-
HTMLMesh snapshot-
CanvasTexture fallback-

Texture dimensions are fixed after first use; density changes rebuild the explicit fallback texture.

Mutate first, then compare the direct HTMLTexture refresh, the HTMLMesh snapshot delay, and the explicit canvas redraw. Try ?forceWebGL=1 for the WebGL2 companion.

THREE.JS FOUNDATIONS LAB