About bake-lighting
bake-lighting is a skill for baking static lighting in an engine scene to reduce per-frame lighting and shadow costs on static geometry. It explains lightmapper setup, mesh and light settings, UV requirements, and when to use offline baking.
Key features
- 01Lightmapper setup and bake controls
- 02Lightmap modes and ambient occlusion
- 03Second UV set requirements
- 04Runtime versus offline bake guidance
- 05Dynamic-object shadow considerations
Use cases
- 01Bake lighting for static scene geometry
- 02Check imported meshes for lightmap UVs
- 03Choose runtime or offline light baking
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ playcanvas/ skills --skill bake-lightingAfter installing, type/bake-lightingin Claude Code to confirm it loaded.
Details
From the project READMEBake static lighting
Lightmaps remove per-frame shadow and lighting cost for static lights on static geometry.
ApplicationregistersLightmapper; manualAppOptionsbootstraps setlightmapper = Lightmapper.- On the light, set
bake = true; once every mesh it lights is lightmapped, setaffectDynamic = false. - On each mesh, set
render.lightmapped = true, or it goes unlit onceaffectDynamicis off. Size it withlightmapSizeMultiplier;castShadowsLightmaplets meshes shadow each other. - Set the mode on
scene.lightmapMode:BAKE_COLORfor flat diffuse, or the defaultBAKE_COLORDIR, which adds direction for normal- or specular-mapped materials. - Bake AO without lights with
scene.ambientBake,ambientBakeNumSamples, andambientBakeOcclusionBrightnessandambientBakeOcclusionContrast. - The Engine bakes once on the first rendered frame. Call
app.lightmapper.bake(null, mode)only for nodes added later or to re-bake.
A second UV set is required
A node bakes only when every mesh instance has SEMANTIC_TEXCOORD1. Otherwise it is skipped, with
only a debug-build log, and stays dynamically lit. Primitives have the set; imported GLBs often do
not. Check, then unwrap or re-export.
On-device or offline
Time bake() on the target device. Move to an offline bake shipped as textures only when it misses
the startup budget or needs detail the runtime lightmapper cannot produce, and state the added
download size.
Dynamic objects moving through baked light need approximated occlusion and a contact shadow, or
they look pasted on. Compare verify-pixels captures in and out of baked shadow.