In Development – Progressive Lightmapper
We’ve been hard at work on the Progressive Lightmapper since we first showed it at GDC in March. Please watch the video below for a quick introduction to what the Progressive Lightmapper has to offer so far:
The Progressive Lightmapper is an unbiased Monte Carlo path tracer – it can bake out lightmaps with global illumination (GI) inside the Unity Editor. For the last 40 years, the point at which realtime raytracing will become possible in a realtime application has been 5 years in the future and it still is. So for now the Progressive Lightmapper will exist as an alternative backend for baked lighting only.
What about Enlighten? Enlighten is here to stay. Enlighten provides realtime GI and this cannot currently be achieved with a path tracer.
The aim of the Progressive Lightmapper is to make the workflow for baking lighting for a scene much better. In the current Unity release changes to the scene require a new bake and the results can only be shown when the bake is done. What Enlighten brought to the table is the ability to change lights in realtime and see the results immediately. However, changes to parameters, materials or geometry still require a rebake during which you get no feedback.
When iterating on – for example – baked shadows or the level of bounced lighting, waiting minutes or even longer between being able to make informed changes can be very frustrating. This effectively limits the quality you can achieve with your baked lighting. With the Progressive Lightmapper you will get almost immediate feedback. A noisy result at first, but rapidly improving directly in the Scene View.
It has the added benefit of being able to prioritize the parts shown in the viewport – once they have finished it will continue baking the rest of the scene outside of the viewport.
In addition, the Progressive Lightmapper is in many cases more robust. It bakes out indirect lighting at full lightmap resolution so it is less prone to producing artifacts there. The setup is simple; provide a UV unwrap or let Unity create one and set the baking resolution. All your knowledge of traditional baking tools apply. Also, we can more easily predict when it will be done, so a reliable ETA on when the bake will finish is shown on the progress bar.
Finally, when you think the result is good enough you can stop the bake and the lightmaps are created for you from the current state. So if you want to increase samples and allow Unity to add quality to the bake during some downtime, you can crank it up, and stop as soon as you’re ready to continue working.
What does it not do?
It is not a replacement for realtime GI. It only works for baking in the Unity Editor, so you cannot bake from within your game. This rules out baking GI for procedural scenes in-game, or the ability to change the lighting setup for time of day and baking on load. We want to nail the baking workflow in the Editor before we take it further.
Also, it is not necessarily faster than baking with Enlighten. If you setup your scene well for Enlighten it can be very fast, so we cannot guarantee that all scenes bake faster with the Progressive Lightmapper. However, the time between starting a bake and getting some visual feedback will be significantly faster with the Progressive Lightmapper.
Finally, it does not yet support any specific hardware such as a PowerVR Ray Tracing enabled GPU or a regular GPU. Right now it runs only using the CPU cores for baking. Again, for the initial release we will focus on the workflow.
When can I have it?
When it is ready. :) We are currently in a closed alpha phase testing out the feature with selected game developers. Once we are happy with it we will provide an open beta.
Until we’re ready to ship an open beta, we’d love to hear your feedback on what we’ve shown thus far. Sound off in the comments below!
This is a collaboration between Unity and Imagination Technologies, and we would like to thank the following people:
- Jens Fursund
- Luke Peterson