PointLight
Quick answer
PointLight emits light in all directions from a single position, with intensity measured in candela and decay controlling falloff. Configure distance to cap its influence and decay 2 for physically correct inverse-square attenuation, and enable castShadow only when the six-face shadow cost is acceptable.
new THREE.PointLight ( color , intensity , distance , decay )
Key points
- distance 0 means unlimited range, which lights the entire scene and hurts performance.
- decay 2 gives inverse-square falloff; lower values look flatter and less physical.
- power expresses luminous flux in lumens and converts to intensity on read or write.
Example
const lamp = new THREE.PointLight(0xffd08a, 40, 60, 2);
lamp.position.set(12, 8, -4);
lamp.castShadow = true;
lamp.shadow.mapSize.set(1024, 1024);
lamp.shadow.bias = -0.002;
lamp.shadow.camera.near = 0.5;
lamp.shadow.camera.far = 60;
scene.add(lamp);
const bulb = new THREE.Mesh(
new THREE.SphereGeometry(0.4, 16, 12),
new THREE.MeshBasicMaterial({ color: 0xffd08a })
);
bulb.position.copy(lamp.position);
scene.add(bulb);
Notes
- Unlimited distance causes odd bright patches on far geometry; set a practical radius.
- Shadow rendering for point lights uses a cube map and is expensive on many lights.
English edition written for Atlaslog. Code is taken from the original Chinese page and runs unchanged.
Atlaslog (2026). PointLight. https://www.jingweizhi.com/en/three/api/point-light.html (accessed 2026-11-03).