Epic's GPUlightmass

Your scene revealed some critical issues inside the volumetric lightmap renderer and I decided to expedite the planned rework to the renderer.

Volumetric Lightmap Renderer Rework

Animation

Instead of rendering the entire scene’s volumetric lightmap probes all at once, now the renderer progresses through the probes by batches. This breaks interactive preview for volumetric lightmaps, but has much better irradiance locality and saves significant amount of both work and GPU memory. Now it takes only ~1/4 of the original GPU memory to bake volumetric lightmaps. The computation needed for VLM is also cut down by 50% so things should be generally faster. The batches of probes are processed following Z-order curve to further improve locality.

Since the rework breaks interactive preview, now you may see weird things like black strips and seams in VLM while its being baked. They should be gone once the bake finishes.

Also, VLM probe placement has been tightened. The original idea was to place more probes to reduce leaks, but after some careful testing that was not really working as expected, while wasting space. After tightening we should have ~25% fewer probes now.

Reason why your VLM probes were turning dark was that since the probes were rendered all at once, they were poking the entire scene which had absolutely terrible locality and destroyed the content of irradiance cache. And in such cases IC had a bug that would return invalid samples (:flushed:) which made the VLM probes black. During the rework the bug was fixed so we shouldn’t get black samples even if that happens again.

Above changes should be visible on github up to

9 Likes