MeshStandardMaterial
Quick answer
MeshStandardMaterial implements physically based metalness-roughness shading and is the default choice for realistic surfaces. color, roughness, and metalness define the base response, while map, normalMap, roughnessMap, and envMapIntensity add texture detail and reflections. Enable vertexColors for per-vertex tint or onBeforeCompile() to inject custom shader code.
new THREE.MeshStandardMaterial ( parameters ) → MeshStandardMaterial
Key points
- roughness 0 is mirror-like and 1 is fully diffuse; metalness 0 is dielectric and 1 is pure metal.
- roughnessMap uses the green channel and metalnessMap uses the blue channel.
- envMapIntensity scales reflections, which require scene.environment or an envMap.
Example
const material = new THREE.MeshStandardMaterial({
color: 0x8fa6c0,
roughness: 0.62,
metalness: 0.15,
side: THREE.DoubleSide
});
const mesh = new THREE.Mesh(
new THREE.BoxGeometry(4, 4, 4),
material
);
scene.add(mesh);material.vertexColors = true;
material.needsUpdate = true;
const flat = new THREE.MeshBasicMaterial({ vertexColors: true });
Notes
- A dark color multiplies the map and dims textures; keep color white for unaltered maps.
- Cloning shares texture references, so disposing one material can break its clones.
English edition written for Atlaslog. Code is taken from the original Chinese page and runs unchanged.
Atlaslog (2026). MeshStandardMaterial. https://www.jingweizhi.com/en/three/api/mesh-standard-material.html (accessed 2026-11-03).