Loading news...
Utility Toolbox

Godot Lmbake Viewer

Utility Toolbox - Godot tool

Lmbake Viewer

This opens a Godot .lmbake file and shows you what is actually inside it. Where every light probe sits in your level, how bright each one of them is and what the bake itself is set to. You can edit that data as well and save the file back out. It all runs in your browser.

Godot Runs in browser
What it is for

When you bake lighting in Godot you get two files out of it. The lightmap texture is a .exr and it holds all the light burnt into your walls and floors. Next to it sits a .lmbake, and that one holds the probe volume. The probe volume is a scattering of points through your level, each one storing the light arriving at that spot from every direction. Those probes are what light everything the lightmap cannot, so your player, your props and anything else that moves.

The problem is that Godot doesn't really let you look at any of it. You get a file in your project and no way of seeing what is in it. I used Claude to make a python version of this while working on The Empty Halls, where a level would look right and then the player model would walk through it and it would look completely wrong. Either far too dark or lit like the player was in a showroom. I wanted a way to see what the bake was actually doing and to be able to tweak it without having to rebake the whole level.

How it works
  1. Open your .lmbake Drag it in or pick it with the button. Compressed bakes work too, the page unpacks them itself. You get a map of every probe seen from above and a summary of what is in the file.
  2. Have a look around Hover over a probe to read where it sits and how bright it is. Narrow the height range to pull one floor of a building out of the pile. The histogram shows how the brightness is spread across the whole volume.
  3. Change it if you need to Move the sliders and the map updates as you go. Hold Show original to flick back and forth between the two. Nothing gets written until you ask for it.
  4. Put it back in your project Download the copy and drop it over the old file, keeping the original somewhere safe first. Godot has to reload the resource to notice, so close and reopen the scene or restart the editor.
The tool

Nothing you load here gets uploaded anywhere. Your bake is read and unpacked inside your own browser, and if you save one the new copy is built in memory and handed straight to your downloads.

Drop a .lmbake here Or Look in your Godot project for the file sitting next to the .exr your level bakes to. You can drop the original .bak and a .probegrade in at the same time.
What is in this file
Probe strength
Tint

The number box takes values past the end of its slider, so a master of 6 is fine even though the track stops at 4.

Baked exposure
This one isn't like the others. It also scales the light baked into your static geometry, not just the probes so it moves your walls and floors as well. Leave it at whatever the bake was made with unless you want the whole level brighter.
Probe map, from above, X across and Z down

Preview exposure and the height range are for looking only, neither of them is saved into the bake. Narrowing the height range is the easiest way to pull one floor of a building out of the pile. The pixel art export brings both along, as a PNG built from the probes currently on screen.

Probe brightness distribution
current settings original bake
Ambient (L0) luminance mean median max
Original - - -
Current - - -
Overall change -
Notes

This does not touch your lightmap texture. Your walls and floors get their brightness from the .exr file sitting next to the bake and nothing here opens that file. If your level itself is wrong as well as your player then this is not the tool to fix that, that is a rebake. The one exception is baked_exposure, which Godot applies to both probes and texture so it has been fenced off in its own panel with a warning on it.

A compressed bake comes back bigger. Godot can save these files compressed with Zstandard and the page reads that fine, but it this tool doesn't have a compressor in it. Only a decompressor, and enough of the format to write the data back out uncompressed inside the same container. Godot loads it exactly the same way, the file is just bigger on disk than the one you started with.

Licences & Credits