MeshPhongMaterial
Quick answer
MeshPhongMaterial computes Blinn-Phong lighting per pixel with a diffuse color, specular highlights, and shininess. It suits plastics, polished stone, and water where a visible highlight matters, while MeshStandardMaterial is preferable when you need physically based roughness and metalness. specularMap varies highlight strength per pixel for wet or reflective patches.
new THREE.MeshPhongMaterial ( parameters )
Key points
- shininess controls highlight tightness: 5 to 15 is matte, 80 and above is polished.
- specularMap and normalMap add localized highlight and surface detail.
- flatShading true produces faceted low-poly shading.
Example
const material = new THREE.MeshPhongMaterial({
color: 0x9aa3ad,
map: colorMap,
normalMap: normalMap,
normalScale: new THREE.Vector2(0.8, 0.8),
specular: 0x8899aa,
shininess: 90,
specularMap: wetnessMap, // 白色区域高光更强
emissive: 0x000000
});
const ground = new THREE.Mesh(planeGeometry, material);
Notes
- Normal maps without tangents fall back to screen-space derivatives and can look noisy.
- Phong highlights do not respect metalness, so metals look like shiny plastic.
English edition written for Atlaslog. Code is taken from the original Chinese page and runs unchanged.
Atlaslog (2026). MeshPhongMaterial. https://www.jingweizhi.com/en/three/api/mesh-phong-material.html (accessed 2026-11-03).