THREE.JS / FOUNDATIONS 233

Blur the framebuffer on purpose.

A viewport texture copies the pixels that already exist in the current framebuffer. Turn on mip generation, then pin the exact level sampled by a transparent surface.

Initializing viewport texture—

Preparing the framebuffer copy and the transparent inspection surface…

backend
—
source
—
explicit level
—
mip chain
—
render order
—
frame ms
—
Viewport sampling controlswaiting

The viewport graph will be compiled after the renderer selects its backend.

Viewport texture contractTSL
mip sourcecurrent framebuffer

viewportMipTexture()

copy timingrender update

copy before draw

LODtexture node

TextureNode.level(0)

UV safetyclamped sample

viewportSafeUV()

opaque ruletransmission use

opaque pixels only

orderingtransparent pass

renderOrder 10

The world renders first. The window then samples the framebuffer state at render order 10, so its pixels are not part of the source it reads.

WebGPU executes the viewport texture node. The forced WebGL2 route is an explicit translucent reference because it cannot execute the node graph.

Derived from the official ViewportTextureNode, ViewportSharedTextureNode, and TSL docs. Use ?forceWebGL=1 to inspect the labeled fallback.

LAB 233 / VIEWPORT MIPMAPS