First bake
This tutorial builds a small, readable lighting test: a floor, a few walls, a light, a static object that casts a shadow, and a movable object to test probes. At the end you should have saved lighting that remains correct after reopening the level.
Use a new test map or a copy of an existing level. Do not start by changing the rendering setup of a production map without a backup.
1 Install and confirm the authoring configuration
Install Spectral through Fab, enable it in Edit > Plugins, and restart. Leave the separate GPU Lightmass plugin disabled.
For the supported baking setup, use Windows with a hardware-ray-tracing-capable GPU, DirectX 12, SM6, desktop deferred rendering, and a normal non-stereo editor view. These are authoring requirements, not a requirement for every device that plays the finished bake.
- Open Project Settings and check the Windows target settings for Default RHI: DirectX 12 and the SM6 shader target.
- In Spectral > Settings, review the required values and use Fix Settings.
- If the project uses Forward Shading, change to the supported deferred setup before baking. Review this change carefully in an existing project.
- Review suggested settings before applying them. They can disable features the project was using.
- Enable Spectral's shader hooks, save changes, and restart as requested.
- Wait for shader compilation to finish.
See the project settings reference for each requirement. The Fix button does not select every platform option or replace unsupported hardware.
Checkpoint: the Spectral panel opens, required settings are satisfied, and shader hooks are enabled. If a prerequisite still fails, resolve it before creating a large scene.
For a Vulkan project, restart the editor with -dx12 for the bake, then save the lighting before restarting on Vulkan. Spectral blocks lighting baking while Vulkan is active.
If you already have a reference map, you can import its Spectral level settings before continuing. Review the imported Baker settings and lighting controls; importing does not add the source map's actors or baked lighting. Otherwise, configure this test map directly using the steps below.
2 Build a scene that is easy to judge
Create a floor with two walls forming a corner. Add a cube or pillar a short distance from a wall so you can see both a contact shadow and bounced lighting. Use simple, non-metallic materials with moderate colors; an all-black or all-mirror scene makes the first test harder to read.
Select the floor, walls, and fixed cube and set their Mobility to Static. These are the surfaces whose lighting you want stored in lightmaps.
Add a second small sphere or cube and set it to Movable. This is the receiver you will move through the probe field later. Keep it out of the way while judging the static surfaces.
Save the map with a clear name, such as Spectral_BakeTest. If it uses sublevels, load and show the ones you intend to include. Bake Lighting works with the participating visible level setup.
3 Add and check the lights
Start with one Static or Stationary light. A Point Light inside the test area is an easy first check; a Directional Light is useful for testing sunlight and shadows. Make sure the light is enabled, visible, and close or oriented enough to illuminate the scene.
If using a Sky Light for a mobile baked setup, set its Mobility to Static before baking. Follow Sky Light on mobile.
Keep the first scene simple:
- Use the light's main intensity for direct brightness.
- Leave Indirect Lighting Intensity at its normal starting value while checking the setup.
- For a Stationary light, review Use Area Shadows for Stationary Light.
- If using emissive surfaces, read emissive bake behavior first. Visible bloom alone does not prove they illuminate the scene.
Keep exposure consistent between comparisons. Do not solve a completely black scene by raising every lighting multiplier at once.
Checkpoint: the test light reaches the intended geometry. Live direct illumination before a bake is not yet proof that saved indirect lighting works.
4 Prepare the static meshes for lightmaps
Open a test mesh in the Static Mesh Editor and inspect its lightmap UV channel. The layout should have non-overlapping islands with enough padding, and the mesh's Light Map Coordinate Index should point to that channel.
If the mesh already has a suitable layout, keep it. If it needs one:
- Select the static-mesh assets in the Content Browser.
- Open Features > Lightmaps and set Selection to Selected Content Browser assets.
- Choose a safe Destination channel. Channel 1 is a common choice only if it does not hold data you need.
- Choose a packing Resolution, keep reasonable Chart Padding, and click Generate.
- Read the result, inspect the generated layout, and save the changed mesh assets.
The destination UV channel is replaced for every instance using that mesh. Do not overwrite material UVs or other authored data. Keep a backup before regenerating UVs on existing assets.
Next, select the static scene objects and use Texels per Meter and Set Resolution to establish comparable density. Inspect the preview before applying. Turn on Visualize > Lightmap Density to find large surfaces with very little detail or small props consuming excessive resolution, then return to the normal lit view.
Generate changes UV assets; Set Resolution changes selected scene-component overrides. Neither action bakes lighting. See Lightmaps for the full controls.
5 Place a probe volume
Open Place Actors > Spectral and add a Spectral Probe Volume. Fit the box around the space where the movable test object will travel, including its height, rather than only around the floor.
Leave Enabled on and Movable off for this fixed room. Start with the default Voxel Size of 100 cm for a room-scale test, then inspect whether it is appropriate for your scene scale.
Turn on Visualize Probes if needed. The markers show the planned sampling grid, not a completed bake. If they obscure the scene, reduce Visualization Scale rather than changing density.
Checkpoint: the field covers the test path, and its bounds do not contain a large amount of unused space. A newly placed volume can still report Not Baked at this stage.
6 Choose the first bake settings
Open Baker and use this baseline:
| Control | Starting choice | Why |
|---|---|---|
| Bake Mode | Full | Use the authored lightmap resolution for a readable reference. |
| Ray Mode | Full | Avoid confusing reduced sampling with a setup problem. |
| Denoise when | On Completion | Filter the result after rendering finishes. |
| Denoiser | Spectral Denoiser | Start with the normal Spectral path. |
| GI Samples | 512 | A starting sample count, not a guarantee for every scene. |
| Stationary Light Shadow Samples | 128 | A starting point for a Stationary light's shadow sampling. |
| Use Irradiance Caching | Enabled | Keep the normal initial workflow. |
Leave advanced controls alone until the first result identifies a reason to change them. For a larger test, Fast modes are useful during iteration, but remember that Bake Mode reduces lightmap resolution while Ray Mode reduces sampling work. Neither changes the probe volume's Voxel Size.
7 Run Bake Lighting and read the result
Click Bake Lighting. If Spectral blocks the operation, read the first prerequisite error and fix that condition. Typical causes are missing ray-tracing support, a competing GPU Lightmass plugin, or overlapping Stationary lights without a usable shadow channel.
Do not keep pressing Bake or increase sample counts to solve a prerequisite error.
Let rendering and completion denoising finish. The GPU becoming idle does not necessarily mean the whole operation is finished. Cancel Bake stops the operation; it is not a completed quality result.
Spectral can repair light identifiers and enable precomputed lighting on participating levels. It does not turn disabled lights on. Review and save the levels changed during preparation.
8 Inspect surfaces and probes separately
Return to a normal lit view and inspect the static floor, wall corners, and the cube's shadow. Then move the Movable test object from the bright side of the room to a shaded region. Turn on Visualize Global Probes to confirm the field contains baked data, then turn markers off to judge the actual object.
| Symptom | Check before raising quality |
|---|---|
| Bake never starts | The prerequisite message, active RHI, shader target, and restart state. |
| Surface lighting is blocky | Lightmap resolution and the UV layout. |
| Surface lighting is noisy | GI sampling and denoising; compare the same camera. |
| Light leaks through a thin wall | Geometry thickness, UVs, probe spacing, and cache behavior. |
| Movable object has missing or abrupt lighting | Probe coverage, bake status, and field boundaries. |
| A metallic surface looks wrong | Reflection captures, not just GI samples. |
A volume reporting Baked confirms valid saved data, not that it automatically reflects every later scene edit. Continue with Probe lighting for a closer coverage test.
9 Update reflections
If the scene needs local reflections, add a Spectral Box Capture from Place Actors and fit it to the room. Keep its source as Captured Scene for this test.
After the lighting bake is complete, click Baker > Bake Reflections. Check a reflective test surface. Reflection capture updates are separate from lightmap and probe baking; neither button replaces the other.
10 Save, reopen, and test
Save the level, modified meshes, and lighting build data. In Memory, choose Current Level and Refresh to record the lighting cost.
Reopen the test level and confirm the result is still present. Run Play mode and check the movable object under the same lighting. Finally, test a packaged build on the target renderer and device, especially for mobile or VR.
The bake completes without a prerequisite error, static surfaces look correct, the movable receiver has valid probe coverage, reflections are updated where needed, and the saved result survives reopening. Only then add optional effects or scale the setup to a larger map.
Next, use Probe lighting, Probe-lit fog, or Lightmapped prefabs. Use Optimization once you have a result worth preserving.