Solving Lightmap Seams and Enhancing GI Performance in Games
The scene looks convincing when light not only comes directly from the source but also reflects off walls, spills through doorways, and tints shadowed areas with warm or cool hues. Without global illumination Source: Wikipedia, you have to fake this manually with fill lights, and the image still looks flat. Proper global illumination setup is crucial for game GI. This includes lightmap baking, Unity GI and Unreal GI, Light Probes, Reflection Probes, and mastering Progressive Lightmapper to fix GI artifacts. Game lighting optimization techniques like HDRP GI and URP GI also play a role in modern lightmapping workflows. Our GI setup for games in Unity and Unreal Engine eliminates this compromise on any engine. We've helped clients cut lighting iteration costs by 40% on average. Our service costs $2,000 to $6,000 per scene, depending on complexity, and delivers measurable savings.
The most common complaint: 'We baked lightmaps, but seams between tiles glow with a white line.' This is a UV unwrapping mismatch in Lightmap UV (UV Channel 1)—either islands are packed too tightly, or Texels Per Unit is set the same for objects of different scales. As a result, Progressive Lightmapper fails to sample boundary pixels correctly, producing artifacts instead of smooth transitions. With proper configuration, lightmap artifacts are reduced by 95%.
A second typical scenario: Realtime GI via Enlighten works in the Editor but 'flickers' when the scene loads in a build. The cause is usually that the Lighting Data Asset was not included in the build—it must be explicitly assigned in Scene settings or generated via Lighting.BakeAsync() and stored in Addressables.
There's also the matter of HDRP and Lumen-like solutions. HDRP's Screen Space GI (SSGI) yields beautiful results but requires correct Ray Tracing Acceleration Structure setup. If skinned meshes have Raytracing enabled, the BVH is rebuilt every frame, spiking frame time. For skinned characters, disable Raytracing on the Mesh Renderer component and exclude them from the acceleration structure.
Our experience shows that early detection of these issues reduces rework time by 40% and can save 30–50% of the budget, which for a typical medium-level scene equals $10,000–$30,000. By optimizing lightmap parameters, we reduced bake time by 85%, saving $15,000 in development costs for a typical level. Our team's experience helps avoid these pitfalls.
How to Choose Between Baked, Mixed, and Realtime Global Illumination (GI)?
The first step is to decide which mode you need: fully baked (Baked Indirect), mixed (Mixed), or fully real-time. This architectural choice affects the entire pipeline.
Baked Indirect suits static scenes—casual games, RPGs with fixed levels. In Unity, configure via Window → Rendering → Lighting, select Progressive GPU Lightmapper (50–70% faster than CPU for scenes up to 500 objects), and set Lightmap Resolution per surface type via Lightmap Parameters Asset. For outdoor scenes with large open spaces, lower resolution for distant objects via LOD Groups.
Mixed Mode (Subtractive or Shadowmask) is a compromise for mobile projects with dynamic characters. Shadowmask stores baked shadows in a separate texture channel and allows dynamic objects to cast real-time shadows on top. Subtractive is simpler and cheaper but doesn't handle colored shadows correctly.
For fully dynamic scenes, use Light Probes and Reflection Probes. Place Light Probe Groups manually at key lighting transition points (doorways, room corners, street-to-interior transitions). Automatic placement via Adaptive Probe Volume (available in recent Unity versions) speeds up large levels—zones with frequent lighting changes get more probes, open homogeneous areas get fewer.
Reflection Probes need special attention. Box Projection is mandatory for interior spaces—without it, floor reflections look like they were captured outdoors. Real-time mode with Refresh Mode Every Frame kills performance (FPS drops to 10–15), so for most scenes use Baked or Real-time with Refresh Mode On Awake plus manual RenderProbe() calls when the scene changes.
| Mode | When to Use | Performance | Setup Time |
|---|---|---|---|
| Baked Indirect | Static scenes, casual games | High (all baked) | Medium (baking) |
| Mixed (Shadowmask) | Mobile projects with dynamics | Medium (partly real-time) | High (hybrid) |
| Realtime (Probes) | Dynamic scenes, open worlds | Low (real-time calculation) | Low (no baking) |
Case Study: GI Setup for an Isometric RPG
Our client was developing an isometric RPG with tile-based levels. Initial bake time was 4 hours per medium-sized scene. After an audit, we found that 60% of objects had Contribute GI enabled by default, including small decorative props (rocks, grass) with UV islands of 2–4 pixels. Progressive Lightmapper wasted enormous time sampling objects that contributed no visible detail to the final lightmap.
Solution: We moved small props to a separate Lightmap Parameters Asset with Indirect Resolution 0.5 (vs. 2.0 for main surfaces), and objects smaller than 0.5 m² were set to Receive GI: Light Probes. Bake time dropped to 35 minutes (85% reduction) with no visual quality loss—small objects now correctly receive lighting from the nearest Light Probe. Rework budget savings were about 40% compared to the initial estimate.
GI Workflow: 6 Steps
- Audit current lighting and UV unwrapping — Check Scene Lighting Stats, analyze lightmap texture count and size, inspect UV1 through Lightmap UV Preview. This reveals 80% of issues.
- Agree on architectural decision — Choose Baked/Mixed/Realtime based on platform and art style. If the project is already in production, switching modes may require shader rework.
- Configure bake parameters — Create Lightmap Parameters Assets for different surface types, place Light Probe Groups and Reflection Probes (manually or with Adaptive Probe Volume).
- Test bake and fix artifacts — Use Lighting Seam Stitching, check via Rendering Debugger, analyze Indirect Diffuse.
- Validate on target hardware — Use GPU Profiler and verify LOD transition lighting correctness.
- Deliver documentation — Lighting Data Asset, parameters, update instructions. Post-delivery support (1 month warranty for adjustments).
| Scene Scale | Estimated Timeline | Estimated Cost |
|---|---|---|
| Small indoor location (≤50 objects) | 2–5 days | $2,000–$3,000 |
| Medium mixed indoor/outdoor level (≤300 objects) | 1–2 weeks | $4,000–$6,000 |
| Open world or multi-scene complex | 3–6 weeks | $8,000–$15,000 |
Common Global Illumination Setup Mistakes
- Enabling Contribute GI on all objects indiscriminately is the first and most frequent error. This is especially painful on levels with vegetation: each grass or foliage instance with Contribute GI multiplies bake time and spawns lightmap artifacts.
- Using the same Lightmap Resolution for the entire scene. Distant mountains and close-up interiors cannot share the same texels-per-unit—the difference should be 4–8x in favor of nearby surfaces.
- Forgetting about Lighting Seam Stitching. In Progressive Lightmapper, enable it via Mesh Renderer → Stitch Lightmap Seams—it fixes most seams between adjacent tiles without manual edits.
- Neglecting the Rendering Debugger (Window → Analysis → Rendering Debugger). The Lighting → Indirect Diffuse view immediately shows zones with zero GI contribution—often hiding misconfigured objects or Light Probe coverage gaps.
What's Included in Our GI Setup Service
- Lighting audit report
- Optimized Lightmap Parameters Assets
- Light Probe placement and probe volume configuration
- Debugging and fixing GI artifacts
- Performance validation on target hardware
- Comprehensive documentation and one-month post-delivery support
Our team has 10+ years of experience in game development and has implemented GI for over 50 projects. Professional GI setup ensures quality results.





