Luoshuang's GPULightmass

I suspect you didn’t hit save in the top left of you texture editor window before baking.

I’m using UE 4.22.3 , but I doubt the version should make a difference here. I’ve been baking sunlight from HDRIs for a while on older versions than 4.20.x

I baked that image using Luos’ GPULM too, no difference there.

The only other thing I may have done is set the ‘EditorSkySphere’ you made to ‘Movable’ so it’s not included in the light bake. It should have no contribution to static lighting and should only serve as a realtime background.

Yeah I did save it after I put it on NoMipmaps.
Just tried setting the EditorSkySphere to Movable, no change…!

Ha, actually, I was wrong. I just redownloaded your project file and ran a light bake without making any changes and it worked - including the sun light.

You should update to the latest version of UE, there may be a bug with the version you have.

You should definitely use the ‘NoMipmaps’ trick in the future though - you probably noticed that your backdrop got A LOT sharper. UE just won’t render 4k textures at full rez otherwise.

Another tip would be to use this cubemap projection method (below) on your ‘EditorSkySphere’. It will mimic your skylight projection accurately (infinitely distant). The one in the original video you referenced fails because it remains fixed to the inside of the sphere it’s on, so it falls out of alignment with the light bake.

let me know if you’re still stuck.

Good morning man.
I just tried it with the latest version of UE4 and Luoshs’ GPULM but still no luck.
Can you please upload your modified to have a close look?!

Not sure is this GPU ligthmass affected but I noticed that original lightmass encodes light color info with wrong exponent.(2.2 instead of 2.0)
This affect brightness and color saturation quite much.

Hi @kouropalatisk ,

I think it’s working for you too. Try putting some boxes and columns inside your room and you will see some shadows.
In the video and in the scene shown by Prizmlzm, probably they are viewing that “edge shadow” because of a less quality configuration of GPULM. If you set a high preset for it, you won’t see that “hard” shadow.

Hi @PrizmIzm ,

Do you mean that, with that material, your SkySphere is auto-updated with the rotation of the cubemap set inside the Sky? But how?


Hey @Miguel1900
Rendered at MediumQuality, still no shadows from the HDRI amigo. I’ve also tried it with fastpreview.

@PrizmIzm could you please upload the modified one as you managed to pull this through?! You’d shed some light in the HDRI matter! (literally)

No problem, here’s the link to the project that my first screenshot came from…

I have no idea where you’re going wrong - as I said, I downloaded your project and just ran a lighting build and it worked just fine for me.
Could be you’ve changed something in UE or GPULM configs that has permanently effected your light builds. Maybe consider uninstalling and reinstalling both of them.

No dude, sorry I worded that badly. It doesn’t follow your SkyLight rotation settings - you’d still have to add some extra code to build in the rotation (not sure how you’d code it to follow your SkyLight though). The code I showed there is just the basic formula to get the Cubemap image to project more accurately and not look like it’s wrapped around the inside of a smaller sphere (even though it is). I could explain it it more, but it’s best just to try it to see what I mean.

USE ONLY Production Quality. Otherwise will have serious problems with shadows (bending problems). Using lower types of quality with GPULM is completely pointless.

Does anyone know why I’m getting spots in my shadows? These are my bake settings:


Lighting Quality is set to Production.

Lightmass settings:
Static Lighting Level Scale: 0.1
Indirect Lighting Bounces: 100
Sky Lighting Bounces: 20
Lighting Smoothness: 1
Diffuse Boost: 2

Engine version: 4.20.3

Here’s the issue:

Hey @PrizmIzm
Mystery is solved.
I’ve uninstalled and re-installed UE4, latest version. Applied Luoshs’ GPULM and run your modified project.
I rendered it at preview quality and it worked!
I took it to Extreme quality with fireflies at 10 and the light was gone (!!?!!!?!!???!!!)

I took back the fireflies to 10000 and the light from HDRI was back as it was.

Light from HDRI + fireflies at 10 = not happening as the light from HDRI just disappears.

No idea but if we want HDRI light we’ll have fireflies…! So for now we’ll skip HDRI light unless mighty Luoshuang can do something about it!

1: GPULM quality (Preview/…/Extereme) changes only the NumPrimary and NumSecondary config values. In Extreme to the insane values.
So better just put manually 128/64 and it will be fine for most cases
2: You always should use PRODUCTION quality drop-down selection in UE4. Otherwise some direct light ( direct rays from any source) will give you bad shading at bending/curved areas.
3: beware of putting lights at very reflective elements or creating very small light sources from emmissive meshes - you will get then many white splotches on the walls
4: I have used many many HDRI and never got the fireflies. Consider to use better HDRI or check your SkyLight configuration (esp. the Intensity value ).
5: Most of World Settings are no longer utilized for GPULM. Only one parameter GPULM is using for the baking: Indirect Lighting Bounces and of course parameters for VLM. Rest is ignored.


As already mentioned (more or less), I think it’s due to the GPULM quality; that’s why you get “light gone” when making it at extreme. I also think it’s a very normal behaviour with that kind of HDRi, as the sky is very shinny too. I would say: More quality = more accurate bounces = softer shadows. Low quality = very few bounces = hard shadows with lot of artifacts.

To get that hard shadow with decent quality you would need a more concretrated light source, like this one:

The only thing I am curious about, is what settings that Youtuber user had use to achive that hard shadow without -aparently- much quality loose.


Is it possible to redirect users with AMD cards to standard CPU lightmass calculation, and users with NVIDIA cards to CUDA based GPU lightmass calculation? I’m not sure how this implementation reacts to users with AMD cards.

I’m planning to bring this feature to our project, but I’m not sure what’s going to happen for people with AMD cards. I want both of these users to use Unreal Engine without any problem.


GPULM is purely a local tool in your local engine installation, so AMD users should simply not use the tool, and keep the regular Lightmass instead. if AMD users build, they’ll build with Lightmass ; if Nvidia users build with GPULM installed, they’ll use that instead. Outputs of both tools are compatible (though GPULM is obviously better).

thats true. Its disappointing.

They’re going to implement their own solution based on Raytrace technologies. It will be a LOT more faster than the actual GPU Lightmass solution based on brute force.
If you’re an Epic Dev (studio working with UE4), you have access to the code and you can implement it by yourself. Otherwise, you will need to wait the next unreal version to get this new lightmass solution.

this is revolution in light baking.

Hello @Luoshuang , great work with this, very much appreciated!
I would like to ask about compatibility with rect lights, are there any plans for integrating that in the near future?

Thanks :slight_smile:

what is your GPU?