Free · runs in your browser · files stay on your device

Lightmap Baker: Bake Light and Shadows Into a Texture

Drop a model, a room, a building or a whole scene. The page unwraps a second UV set with no overlaps, traces sun and sky light with soft shadows for every texel, and shows the baked result in 3D. Move the sun and bake again in seconds. Download a GLB that looks lit in any viewer with no lights at all, or the lightmap PNG and a UV2 model for three.js. Nothing is uploaded.

Loading the lightmap baker...
Demo with a sample file, recorded in this tool.

How to bake a lightmap

  1. 1

    Drop the model

    A .glb/.gltf, .obj (with its .mtl and textures), .fbx, .stl or .ply. Every mesh is kept, with its colours and textures. Or try the sample courtyard.

  2. 2

    Set the light

    Turn the sun around the model and raise or lower it, make the shadows sharp or soft, and set how bright the sky is. Add a floor if the model has none, so it casts a shadow.

  3. 3

    Bake

    A second UV set is laid out, then the light is traced on your own computer, in a background thread so the page stays smooth. Switch the 3D view between the baked result, the light alone and the original.

  4. 4

    Download

    The lit GLB, the baked texture, the lightmap PNG, the model with its second UV set, or a ZIP with all of them and a three.js snippet.

What the download holds

One file to use anywhere, plus the pieces for engines that put a lightmap over the original materials:

NAME-baked.glbThe model with one unlit material whose texture holds the colours and the light. It looks the same in every viewer, engine or AR app, with no lights in the scene. Best for the web, phones and VR.
NAME-baked.pngThat texture on its own: colour times light, read through the second UV set.
NAME-lightmap.pngThe light alone (sun, sky and shadows, no colours), for engines that multiply a lightmap over the normal materials. The PNG stores light divided by 2, so bright spots are not clipped.
NAME-uv2.glbThe model with its own materials and textures plus the second UV set (TEXCOORD_1) that lightmap.png is laid out on.
README.txt and lightmap-three.jsHow the files fit together, and a short three.js snippet that loads the UV2 model and puts the lightmap on every material.

The limit, plainly: this traces sun and sky light with soft shadows, not light that bounces between surfaces, so a closed room lit only through a window comes out darker than in Blender or Unreal. Baked light does not move: if the model or the sun moves in your app, bake again. Animated models are baked in one pose.

Need the building or room first?

Make a 3D model from a text prompt or a photo with AI, then bring it here to bake its light and shadows. The AI generator uses credits; this tool does not.

More free 3D tools

Lightmap baker FAQ

A lightmap is a texture that stores how much light reaches each part of a surface: direct sun, light from the sky, and the shadows that block them. It is worked out once, ahead of time, and saved. At run time the engine just reads the texture, so the scene gets soft shadows and sky light for almost no cost. Games have used lightmaps for static scenes for decades, and they are still the cheapest way to make a web or mobile 3D scene look lit.
Baking means doing a slow calculation once and saving the answer in a texture. Baking light traces rays from every texel of the model toward the sun and the sky to see what is blocked, then writes the result into an image. After that the model needs no lights or shadow maps: the light is part of its texture.
A model's first UV set often reuses the same part of a texture on many faces (tiling bricks, mirrored halves). That is fine for colour, but light is different on every face, so a lightmap needs every face to have its own place in the texture with no overlaps. This page makes that second UV set for you, or keeps the model's own one if it already has a clean second UV set.
Use the baked GLB when you want the model to look lit everywhere with no setup: model viewers, AR, phones, VR, or any engine with lights off. Use the UV2 GLB and lightmap.png when you want to keep the original materials and textures (for tiling detail or to change colours later) and multiply the light over them, as three.js, Babylon.js, Unity and Unreal can do.
Load NAME-uv2.glb with GLTFLoader, load NAME-lightmap.png with TextureLoader, set flipY to false, colorSpace to SRGBColorSpace and channel to 1, then set it as lightMap on each material with lightMapIntensity of Math.PI * 2. The ZIP includes this as a ready snippet. Keep other lights off or dim, because the lightmap already holds the sun and the sky.
It traces direct sun light with soft shadows and sky light with occlusion, which is most of what makes an outdoor model or an open room look right. It does not trace light that bounces off one surface onto another, glossy reflections, or light through glass. For a scene that needs bounced light, such as a closed room lit only through a window, bake in Blender, Unity or Unreal. This page is for fast, simple baking without installing anything.
Up to 600,000 triangles and 300 MB files. The time depends on the lightmap size, the quality and your computer: a 1024 px bake of a simple scene takes seconds, a 2048 px high-quality bake of a big scene can take a minute or two. On phones the size and quality are capped to keep the browser from running out of memory.
Yes. The tool is free with no signup, and the files it makes are free for personal and commercial use with no attribution. Everything runs in your browser on your own computer, so your model is never uploaded.

Lightmaps are baked in your browser on your own computer. Downloads are free for personal and commercial use, no attribution needed. Blender, Unity, Unreal Engine, Babylon.js and three.js are named only to describe compatibility; The3DAI is not affiliated with or endorsed by them.