VRAM and Performance
Directional lightmaps are runtime textures. In VRChat worlds, their cost is not just bake time. They affect runtime VRAM, bandwidth, loading behavior, compression artifacts, and compatibility across the actual client and the shaders used in-world.
Relative Texture Cost
- Non-directional: 1 lightmap.
- MonoSH: base lightmap plus 1 directional map.
- SH: base lightmap plus 3 directional maps, 4 maps total.
Full SH is often roughly around 1.7x to 2x the runtime VRAM of MonoSH in practical cases, depending on texture formats and compression.
Exact numbers depend on lightmap resolution, atlas count, compression, texture import settings, HDR format, platform, and project settings. Treat all ratios as estimates until measured in the actual build.
Full SH can become expensive quickly in large VRChat worlds with multiple 4K lightmap atlases. Test with the Unity profiler and the target build instead of trusting editor impressions alone.
| Mode | Map Count | Relative VRAM | Bandwidth Cost | Visual Return | Recommendation |
|---|---|---|---|---|---|
| Non-directional | 1 | Lowest | Lowest | Flat but cheap | Use only when directional detail is not important |
| Dominant Direction | 2 | Low to medium | Low to medium | Basic normal response | Use for compatibility or budget constraints |
| MonoSH | 2 | Medium | Medium | Strong surface contrast | Default for most realistic scenes |
| SH | 4 | High | High | Best colored directionality | Test where colored light really matters |
| RNM | 3 HDR maps total | Very high | Medium to high | Strong surface contrast | Use only in a known RNM workflow |
Practical Downgrade Path
If VRAM is high, downgrade from SH to MonoSH first.
If memory or compatibility is still a problem, downgrade from MonoSH to Dominant Direction.
If normal response is not important, use non-directional for specific groups or low-priority surfaces.
If the visual issue is only on a few important surfaces, tune Texel Density and Resolution Control before globally increasing map cost.
Keep the Look Before Killing the Style
Reduce atlas count and resolution before flattening the entire scene. Often the better fix is:
- Better lightmap grouping.
- Lower scale in lightmap on low-value surfaces.
- Lower resolution outside hero areas.
- Fewer oversized atlases.
- Cleaner import compression choices.
For VRChat, this matters even more because lightmap memory competes with everything else in the world budget, including materials, reflection probes, environment textures, and whatever avatars users bring into the instance.
Check lightmap compression artifacts carefully, especially in dark scenes. Crunched compression can make gradients, low-light bounce, and soft color transitions visibly break apart.
Profiling Notes
Profile both build size and runtime VRAM. When comparing modes, bake the same representative area with the same atlas resolution, compression, shaders, probes, and post-processing, then compare:
- Runtime memory.
- Texture count.
- Frame timing.
- Material compatibility.
- Gradient quality.
- Dynamic-object lighting quality.
- VRChat client behavior, not just Scene View.
Use the Decision Guide when you need a quick fallback path.