Assisted environment probe placement

Matthäus G. Chajdas1, Andreas Weis1, Rüdiger Westermann1

Luminance error field around a probe in the center.
Luminance error field

(Scene courtesy of id Software from Doom 3)

1Technische Universität München

Accepted to SIGRAD 2011, The Annual SIGRAD Conference: "Evaluations of Graphics and Visualization” Efficiency, usefulness, accessibility, usability"


Placing probes for environment maps is a tedious and time-consuming task for current game developers. In particular, locating the significant places for reflection requires the artists to manually scan through a whole game level. Even then, probes may wind up being too similar and have to be cleaned up manually later on. Furthermore, the whole process needs to be repeated when the content changes. We propose a novel algorithm which assists the artist when placing environment map probes. Based on the original game content, we produce a set of candidate locations for inspection by an artist. By setting a few parameters like sampling density and aggressiveness of probe elimination, the overall number of generated sample probes can be easily adjusted.

All of this requires only a short preprocess which can be done using the available in-game renderer. From the generated sample set, the artist can decide which locations are important, add or remove probes manually and adjust the placement to account for supplemental, content-specific parameters. Our initial probe placement, together with additional information computed by our algorithm, allows the artist to place probes more efficiently. Early user testing indicates that the total time can be reduced by up to half a day for a single game level.


Notes & Updates

Some clarifications for issues which have been raised after the paper release:

  • The processing time in the paper does not include the time to generate the probes. This is mostly because we ray-traced them; for a real game, the probes can be generated by rendering using the in-game renderer. This should allow the generation of 100+ probes/second.
  • Typically we would use a probe sampling density of 1 probe per meter (roughly.) The Alphalabs HD test is included to show how our system reacts to higher probe densities.
  • Failure case: We mention in the paper that shadowed areas trigger a potential failure case. This is because all gradients in a shadowed area point away from it, so no probe is ever going to be placed there. Turning the search order around to traverse away from the light sources does not solve the problem, as now all probes near walls become sinks as well.
  • For the representative probe, we compute first the centre of the cluster and try to place a probe there. If this is not a good candidate (as per our similarity metric), we split up the cluster. There's some heuristic going on to split the cluster; in the worst case, we have to do a pair-wise comparison of all probes to separate two clusters that are spatially close.


  author       = "Chajdas, Matth{\"a}us G. and Weis, Andreas and Westermann, R{\"u}diger",
  title        = "Assisted environment probe placement",
  year         = "2011"