Now the mainstream engine's approach is to use image-based lighting to achieve approximate global illumination, but such a technique seems to be only applicable to outdoor scenes.What kind of technology is used in the indoor scene to achieve global illumination?For example, in a room with natural light, or in a completely enclosed indoor environment


1 Answer 1


There's two main things it seems like you've not understood correctly.

IBL is for indoor scenes and outdoor scenes

In the early days when IBL was hot, the Uffizi light-probe was probably the most popular for researchers. IBL works really well for indoor scenes with strong light coming from multiple directions, such as churches with stained glass. That kind of scene was the "killer app", because for most outdoor scenes, skylight simulation was already a popular, fast, and useful method. Environment maps were originally popular for outdoor scenes because simulated clouds didn't look right, even though the lighting was good.

The big limitation for indoor scenes is if the room is small. A light probe taken in the middle of a room won't be accurate for the corners of that room, because the light is coming from different directions. Just like with a reflection map, if your objects are moving far enough for that to be visible, you need to take multiple light probes and blend between them. This can also be a limit for outdoor scenes if the lighting is dominated by (say) the shadow of a building or tree, or a nearby artificial light.

IBL is not a global illumination technique

It's more helpful to think of it as pre-baked lighting. Just as you might use a light map to bake GI computed from your static lights (with some offline technique) into the textures for your static objects, you can also have that pre-computed GI affect your dynamic objects. But it's not an approximation to full GI, because dynamic lights and objects don't contribute at all.

So how do I use it indoors?

There's two ways. If you're trying to place CG objects into a real-world indoor scene, just capture a light probe of that scene exactly the same way as a real-world outdoor scene. If you're trying to light a CG scene (i.e. a room that only exists in your game), then put your scene into an offline renderer (such as a path-tracer with full GI) to create the light probe, then apply that light probe in your real-time engine.

  • $\begingroup$ Thank you very much for your answer.Is the light probe used to collect the indirect illumination of objects around a point, but the surrounding objects need information on the light probe to calculate the illumination, is this not contradictory?Or I understand it wrong? $\endgroup$ Mar 6, 2019 at 4:58
  • $\begingroup$ @jacksparowll the light probe data is gathered from information generated with some other offline lighting technique (such as ray tracing). You then use that light probe to fake the lighting effects of that technique on a scene that uses cheaper real time graphics. $\endgroup$ Mar 7, 2019 at 3:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.