THREE.JS / FOUNDATIONS 244

When light should stay out.

KHR_materials_unlit is a material decision, not a lighting trick. The asset asks the viewer to use base color, alpha, and vertex color while ignoring the PBR lighting model. A moving key light makes the boundary visible.

Preparing glTF fixture—

Building three panel materials and a loader-parsed unlit asset…

backend
—
unlit mats
—
material types
—
focus
—
frame ms
—
Material comparison controlswaiting

The loader will map KHR_materials_unlit to an unlit Three.js material.

Unlit extension contractwaiting
unlit texturedbaseColorTexture + factor
PBR referencedirect light + environment
unlit vertex colorCOLOR_0 + factor
baseColorfactor + texture

waiting

vertex colorCOLOR_0

waiting

lightingignored by unlit

waiting

PBR fallbackoptional in glTF

waiting

loader resultmaterial type

waiting

alphastill applies

waiting

The extension is a boolean preference for unlit shading. Compatible clients use base color, alpha, and vertex colors; PBR properties exist as fallback data for clients that do not support the extension.

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

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

LAB 244 / GLTF UNLIT MATERIALS