Skip to main content

Lightmap Groups

Bakery Lightmap Groups are one of the main tools for controlling how your world is split, packed, and baked. For VRChat world creators, they are most useful when you need better control over atlas count, rebake scope, shader compatibility boundaries, or which lights affect which areas.

A Lightmap Group is Bakery's collection of objects that share one lightmap. Group settings control how Bakery packs objects, which lights affect them, whether the result is texture-based or vertex-based, how resolution is determined, and whether the group overrides the global directional mode.

What Bakery Does Automatically

By default, Bakery already packs static objects into multiple lightmap groups and atlases automatically. You do not need to manually assign groups just to make Bakery work.

That matters for VRChat workflow. Manual Lightmap Groups are not a required baseline step. They are a control tool for specific goals like:

  • Keeping hero areas on predictable atlases
  • Reducing rebake scope during iteration
  • Separating shader compatibility cases
  • Controlling which lights affect which spaces
  • Allocating memory differently across important and unimportant areas
tip

Use manual groups when you want better control, not just because the feature exists.

What Manual Groups Are Good For in VRChat

Manual groups are especially useful when the world has different quality zones or when iteration time matters.

Common VRChat uses:

  • Split a hero room, social hub, club floor, mirror corner, or featured vista from lower-priority areas.
  • Keep a street, alley, lounge, or stage on a predictable atlas so changes stay localized.
  • Reduce rebake scope when you are repeatedly tuning one important area.
  • Separate SH, MonoSH, Dominant Direction, or non-directional areas when memory and shader support differ.
  • Use bitmasks so specific lights affect only certain parts of the world.
  • Use vertex lightmaps only for very specific specialized cases.

Important Group Settings

Packing Mode

Bakery groups can use different packing modes:

  • Original UV: uses existing UV layout behavior.
  • Pack Atlas: lets Bakery atlas-pack objects into a shared lightmap.
  • Vertex: stores baked lighting in vertices instead of textures.

For most VRChat worlds, Pack Atlas is the practical default when using manual groups.

Vertex is niche. Bakery supports it, but it needs compatible shaders such as Bakery Shader or a custom shader path. It is not a general replacement for texture lightmaps in a typical VRChat world.

Directional Mode Override

Each group can override the global directional mode. This is useful when:

  • one hero area benefits from SH
  • the rest of the world should stay MonoSH
  • some materials cannot support SH or RNM

Bakery's manual explicitly notes that RNM and SH modes can require separating those objects from the rest of the scene when standard color lightmaps are not available or the shaders are not compatible.

Resolution and Auto-resolution

Each group can use a fixed resolution or derive resolution from global Texels Per Unit using auto-resolution.

In VRChat, this is useful when you need:

  • stable atlas sizing for one important area
  • predictable bake output for iteration
  • different density behavior between hero and background areas

Atlas Packer

Groups can choose the atlas packing algorithm. In practice, this is less about artistic intent and more about packing efficiency, atlas count, and UV behavior.

Default vs xatlas

Bakery supports two atlas packers:

  • Default: Bakery's original pre-v1.7 atlas packing algorithm.
  • xatlas: xatlas-based packing.

The Bakery manual calls out a few important differences:

Atlas PackerStrengthsLimitationsVRChat Guidance
DefaultSupports object override resolutionNo efficient LOD packing, no hole fillingGood when you need strict per-object override resolution control
xatlasSupports efficient LOD packing and hole fillingDoes not support override resolutionGood when packing efficiency matters more than override resolution

For VRChat worlds, the decision is usually practical:

  • use Default if you rely on override resolution behavior
  • use xatlas if you want tighter packing or better LOD-oriented atlas efficiency

xatlas and UV Regeneration

It is easy to confuse Atlas Packer with Unwrapper.

  • Atlas Packer decides how already-existing UV layouts are packed into lightmap atlases.
  • Unwrapper decides how Bakery adjusts or regenerates UVs when UV padding adjustment is enabled.

If you want to keep using xatlas but avoid Bakery re-exporting geometry and maps on every bake, the relevant toggle is Export geometry and maps. The Bakery manual notes that if geometry, textures, and lightmap resolution settings have not changed, you can disable that checkbox to make the next render faster.

For VRChat workflow, that means:

  • leave xatlas enabled if you like its packing behavior
  • disable Export geometry and maps only when the scene geometry, textures, and resolution-related settings are unchanged
  • turn it back on as soon as you change meshes, UV-relevant content, textures, or resolution setup

This is mainly an iteration-speed optimization, not a different packing mode.

That distinction matters in VRChat projects where shared imported meshes should keep their existing UVs.

Bitmask

Every group has a bitmask, and Bakery lights also have bitmasks. A light affects a group only if they share at least one enabled bit. Default settings mean all lights affect all lightmaps.

For VRChat, bitmasks are useful when:

  • room lights should stay inside one room
  • club signage should not leak into unrelated areas
  • you want lighting separation between floors or sectors
  • hero lights should affect only a specific presentation zone

Per-object Override Resolution

Inside atlas-packed groups, object-level resolution still matters. Global grouping does not replace per-renderer resolution control. You can still use per-object adjustment to keep low-value meshes cheap while preserving detail where players actually look.

SettingWhat It ControlsVRChat Guidance
Packing ModeTexture atlas vs original UV vs vertex bakeUse Pack Atlas for most manual groups
Directional Mode OverridePer-group lighting direction modeUse to isolate SH hero areas or compatibility exceptions
ResolutionTarget size of the group lightmapUse fixed resolution only when predictable output matters
Auto-resolutionDerives group resolution from global TPUGood default when group quality should track the rest of the world
Atlas PackerPacking algorithmUse Default when override resolution matters, use xatlas when packing efficiency matters more
BitmaskWhich Bakery lights affect the groupVery useful for room/zone isolation in VRChat
Per-object adjustmentFine control within the groupUse it before multiplying manual groups everywhere

When VRChat Creators Should Make a Manual Group

Use CaseUse a Manual Group?Why
Hero room, stage, mirror zone, or social focal pointYesKeeps quality and iteration under control
One alley or street section being polished repeatedlyYesReduces rebake scope and keeps the area predictable
Whole world with similar quality everywhereUsually noAuto-packing is often good enough
Tiny decorative prop clusterUsually noThe extra group can fragment atlases and waste memory
SH-only hero area in a mostly MonoSH worldYesGood compatibility and memory boundary
Separate room lights from other rooms using bitmasksYesPrevents unwanted cross-lighting
Trying to make every room its own lightmapUsually noOften increases atlas count without enough visual gain

VRChat Best Practices

  • Use groups intentionally, not everywhere.
  • Group by visibility and player importance, not by arbitrary hierarchy.
  • Reserve manual groups for hero spaces, repeated iteration zones, or memory-control boundaries.
  • Keep group boundaries meaningful for the actual world layout.
  • Test whether a manual group really reduces atlas waste or iteration time.
  • Use group overrides when one zone has different shader compatibility or directional needs than the rest of the world.
  • Check results in the VRChat client, not only Scene View.
tip

Use manual groups for hero areas and controlled rebake zones first. Those are the cases where they usually pay for themselves.

VRChat Cautions

  • Too many manual groups can fragment atlases and increase lightmap count.
  • Tiny groups can make memory worse instead of better.
  • SH or RNM compatibility can force group-based separation when some materials do not support those modes.
  • Bitmask-heavy setups should be documented in project notes so future edits do not accidentally break the lighting logic.
  • Vertex lightmaps should be treated as a specialized tool, not a default optimization move.
warning

Do not split every room into its own group unless there is a real memory, compatibility, or workflow reason. More groups do not automatically mean a better bake.

Workflow Recommendation for VRChat Worlds

For most worlds, start with Bakery's automatic packing and get the lighting style working first. Then introduce manual groups only where one of these becomes true:

  • a hero area needs more control
  • atlas count needs better containment
  • rebakes are too broad during iteration
  • shader compatibility forces separation
  • bitmask-based light isolation is necessary

If the problem is mostly local detail, adjust per-object scale first. If the problem is workflow or zone-level control, then reach for manual Lightmap Groups.

See Texel Density and Resolution Control for the other half of the equation.