I might be wrong, but afaik I dont think there is a separate lightmap for each LOD, it always uses the one generated for the main LOD, though that might be mipmapped depending on distance regardless of which LOD is active.
I haven’t worked with static lighting in UE4 apart from some Arch Viz, that did not require LODs and for some reason I also had strong belief that LODs would use same light map, until I came to a case, where I deliberately wanted baked lighting data to propagate onto lower LODs.
That is where to my entire surprise I discovered that if LOD1 has totally different unwrap, as opposed to LOD0, it would still get lightmapped properly.
I briefly looked at the source, and there is a bLODsShareStaticLighting in MeshRenderData. Gotta take more time to investigate it, but for now i’m quite positive that lightmaps are unique for each LOD.
I also faintly recall Leszek Godlewski mentioning in his blog, that he implemented it for VoEC.
@Tim Hobson Tim, my sincere excuses for disturbing , but could You kindly clarify how exactly lightmapping for LODs is performed?
While searching I’ve found two contradicting posts in this question, namely:
Right now every LOD is lightmapped
separately. Lightmaps can be anything
you want with these, as you’ve pointed
out, but this is not ideal for a
smooth LODs. This may be changed in
the future but there is no timeline
for this at the moment.
I’ve responded on your other post.
Simple answer is no, you can only have
lightmap for LOD0 that gets applied to
There is roughly 2 years time frame between them, but I don’t recall any changes regarding lightmapping of LODs
As far as I understood it was in-line with what Luos said. However, after doing a quick LOD test I was finding different results. Obviously, I’ll need to take a more in-depth look to give you a complete answer which I don’t have time to do before I’m done for today.
Here was my test. I had a box that is horizontal and a box that is vertical for the LOD1. I would have expected the base LOD0 to have the lightmap baked (they both have the same UV layout by the way, just mesh is rotated differently) for both as a single Lightmap and the light bake to appear on the vertical LOD1 be of that from LOD0, but that didn’t turn out to be the case.
However, with that being said, I know you have no control over using a LODs lightmap as the default lightmap and you don’t have access to have very specific light bakes setup for each LOD in a controllable way from the users stance. Also, this test used the same mesh UV layout for each and didn’t have separate UV layouts, which may lead to other issues.
Looking at the Lightmap Texture atlas that is created and stored (World Settings > Lightmaps), I can see the LOD has a separate bake stored here that is smaller, since LOD typically wouldn’t need higher resolution bakes. The Lightmap Resolution originally used for the box mesh with LODs was set to 1024 just to get the higher detail. Using the default resolution of 64 shows the LOD1 having a much lower resolution as well when in comparison to the base LOD when checking that.
So, with my best guess and not researching this any further, I’d say, yes they get separate bakes for the LODs so that the build is correct. However, You don’t get complete control over this for your own personal settings.
You can enable Smooth LOD Transition in the Material assigned to the static mesh with the LOD. This works similar to the LOD transition you see with Foliage and HLODs.
If you’re using billboards for your lowest LOD, you can use the RenderToTexture_Level_BP to generate textures that have some pixel depth offset to get better shadowing so it doesn’t look like a flat card.