Epic's GPUlightmass

Hi, after a long away from keyboard due to some health issues I’m finally back, though I’m not at Epic anymore. The quality of the built-in GPU Lightmass has noticably degraded since 5.0 as I was the only person working on it (while having health issues). Now, while I’m not at Epic, I can however still work on patches for the built-in GPU Lightmass as a hobby project. Like how the OG Luoshuang’s GPULightmass (LGPULM), this version installs by dropping files into your engine installation’s Engine folder.

Binary release for 5.6.0: https://downloads.luoshuangfw.io/gpulm-releases/GPULM-5.6.0.7z
If you want a soruce integration, diff https://github.com/AlanIWBFT/UnrealEngine/tree/gpulm-5.6 against the tag 5.6.0-release and you’ll get a patch. Then, try to apply the patch on your engine source.

Oh and one thing, you may ask why I’m not going to work on LGPULM, while it is beloved by the ArchViz community. Well, due to its architecture, it is very hard to add new features (like accurate materials instead of a UV0-1 square bitmap export of your material) or fixing existing issues (especially, out of GPU memory because of no support of instancing and agressive radiosity caching. Both techniques work very well in small scenes which is probably why it’s popular for ArchViz). So, basically I’m saying the built-in GPU Lightmass (EGPULM) has more potential - and one more reason is currently it is not properly leveraging the power of hardware ray tracing. Benchmark of raw ray traversal performace shows it should have performed as good as LGPULM even without those complicated techniques, which isn’t the case now, probably because my implementation is like, crap :). Let’s see how it goes.

P.S.: There’s a bug in 5.6’s ray tracing CPU instance transform upload code. If you find your foliage generates very dense shadows set r.RayTracing.InstanceBuffer.RLE 0 before bake.

10 Likes