THREE.JS / FOUNDATIONS 243

Many copies. One draw.

A single glTF mesh becomes a field of pylons when EXT_mesh_gpu_instancing supplies per-instance translation, rotation, and scale accessors. The geometry and material stay shared while the transforms move on the GPU.

Preparing glTF fixture—

Building one shared mesh, three transform accessors, and a loader-parsed instanced asset…

backend
—
instances
—
batch
—
asset calls
—
frame ms
—
Instance field controlswaiting

The loader will create one InstancedMesh after parsing the extension.

GPU instancing contractwaiting
TRANSLATIONVEC3 · float

waiting

ROTATIONVEC4 · quaternion

waiting

SCALEVEC3 · float

waiting

shared geometryone primitive

waiting

instanceMatrixGPU buffer

waiting

culling tradeoffone batch

waiting

The node transform is multiplied by each instance transform. Instancing saves repeated draw overhead, but a widely scattered batch can make culling less precise.

The study uses GLTFLoader's native EXT_mesh_gpu_instancing extension path and tracks every loaded resource for explicit release.

Derived from the official glTF instancing example, GLTFLoader, and the Khronos EXT_mesh_gpu_instancing contract. Use ?forceWebGL=1 to inspect the labeled WebGL2 reference.

LAB 243 / GLTF GPU INSTANCING