THREE.JS / MATERIAL CONTRACT

A coating is its own lobe.

A procedural comparison makes MeshPhysicalMaterial clearcoat observable: base roughness, coating intensity, coating roughness, red/green channel maps, an independent normal layer, shader invalidation, and explicit ownership.

ReadyWEBGL2 / PHYSICAL
Preparing the coating layers.
material
—
coat / base
—
maps
—
normal layer
—
shader version
—
sample avg / p95
—

This is a procedural clearcoat contract, not the official gallery asset or pixel composition. Environment, arbitrary UV/map matrices, device performance, context loss, and whole-example fidelity remain separate boundaries.

Sources: MeshPhysicalMaterial docs · official clearcoat example