Download

Modular design: lighting seams, some faces = holes

I don’t post often, but when I do, it sure is a question about lightmapping!

I’m working on a modular UE project, and I’m testing a piece of wall I have. But of course, I seem to be running into a typical problem:

ue_seams.jpg
ue_uvs.jpg
Ignore the 3 UV channels, apparently one was generated by the engine during import

It’s not as bad as it was the first time round. I have scaled down the big face planes in my lightmap UVs, adjusted the edge smoothing as well. I’ve been going through this thread as it seemed to have most of the typical fixes, and the end result looked perfect as well https://forums.unrealengine.com/showthread.php?46269-Modular-Asset-Lighting-Problem

So:

  • Dedicated UV channel is there
  • Maya UV grid was set to accomodate a 128 pixel res
  • UV shell points snapped to grid points
  • 4+ pixels left in-between UV shells
  • I have tried tuning the lightmapping settings in the world settings panel

Hiding the seams with something else is not an option as some of them WILL have pillars in front of them, but some sections will just be wall meshes next to each other.
Should I just delete the sides of the wall? Although that would probably cause more problems. Though I have deleted the bottom/top of the mesh…

And my second issue is that some of the faces are sort of not rendered properly? They seem fine in Maya, normals are pointing in the right direction and all. Any clues?

a6697fe797293cc6792cdc4cdf44f61f229bd757.jpeg

*P.S.*Figured I’d see if the missing top/bottom of the mesh had anything to do with the seams, so I placed a cube over the top of the wall. The shadow that fell over the faces of the wall were lovely, but the seams are still intact.

edit: Nevermind about the holes in the mesh, I triangulated the mesh in maya before exporting the fbx (via the mesh menu, not the fbx export dialogue) and that seems to have fixed the problem.

Have been trying all possible settings for the lighting issue though, still no solution :frowning:

When working with modular faces like this it’s best to break the mesh into larger pieces rather than smaller ones. Breaking it up per wall would be better to do and provide cleaner results.

This thread also has some helpful information about the seams and how to deal with them: https://forums.unrealengine.com/showthread.php?46269-Modular-Asset-Lighting-Problem

TLDR:

  • World Settings > Lightmass > Adjust the indirect lighting quality to 2 or higher (will increase light build times), Adjust Indirect Lighting smoothness to ~0.6.
  • UVs are setup properly snapping the points to the grid for hard edge seams with the target resolution you intend to user. Do this in your modeling programs UV editor.
  • There are other tips that can help, but these are the areas you should start with.

Hi Tim, as I mentioned before the UVs are, to my knowledge, set up properly (I used the 1/128 formula to set up the grid in Maya, UV points are snapped to grid points). And I have tried those settings, along with 0.1 scale, that seemed to help a little bit but the problem is still pretty clear.

Yes, I COULD break something into bigger pieces rather than smaller, but isn’t that counterproductive in some scenarios? Let’s say you want to build loads of rooms/buildings all different in size and patterns, surely smaller modular pieces will give you more freedom for experimenting on the spot? Sure, in the end you’d most likely end up with having a higher triangle count, but if that’s not an issue I still think it’s easier to work with smaller bits?

that’s true but by having a lot more smaller pieces you will also greatly increase the number of draw calls in your scene which can have massive effect on performance, its one of the many things you need to keep in mind when deciding exactly how you want your modular pieces to be.

Yes, that is true, and of course I would take that into consideration if I was building big levels and such, but at the moment I’m only working on a pretty small scale environment and after drafting the bits on paper the mesh size I’m using now seems to work pretty neatly and is saving me some hassle, minus this darn light issue of course!

I just looked at the lightmap density, and it seems like it’s not lined up properly? Or does the density texture have nothing to do with the actual lightmap UV lineup?

7bb554fff439fd80fda6618a64b9b47bef3c714a.jpeg

The Lightmap Density view is directly related to the lightmap UV.

You can read more information about this view mode here: https://docs.unrealengine.com/latest/INT/Engine/UI/LevelEditor/Viewports/ViewModes/index.html#lightmapdensity

Ideally these would all be scaled to the same size in your modeling application. I typically uses checker board pattern myself in Max and stitch my assets together so that pieces work better together. As mentioned before, this can make life easier by having these as a single asset, also as mentioned, you get a lower draw call hit since there are fewer pieces in the scene.

It’s still your call and what works best for you, but there are some road bumps you’ll hit that have to be accounted for using this method. Using the link I posted before for modular light seams can help in a lot of ways, but it will require some testing and tweaking to get right as well. Personally, it’s just less of a headache for me if I build a wall as a single piece. If you need to break it up more so then using other geometry that would high the seams would be ideal. It’s a limitation to how the system is. This may or may not change over time depending on needs, but there are also the settings in World Settings > Lightmass that can help as well.

As I don’t have any more time to spend on trying to fix the meshes I was prepared to use, I’m taking your advice and resorting to merging the bits. This is going to be very time consuming as I’m going to need loads of different shaped pieces (and for every single one I’ll have to redo the UV sets as well, bummer :frowning: ) , but I guess it’s worth the investment considering this is going to be a demo reel piece. The first one I reshaped seems to be responding well to lighting, so hopefully the others won’t be too bad either.

Is this lighting issue going to ever be improved though? Cause as I said, in some cases you may really want to have small bits connecting in a clean manner without needing any additional hide-y bits. Or is it best to just roll with some sort of dynamic lighting?

I had also 1001 problems with ligtmaps, my solution was to increase the wall lightmap resolution to 1024 and snapping the UV’s of your mesh pixel accurate.
For long straight walls i’m even using a lightmap resoulution of 2048, breaking a large straight wall into two or more pieces also didn’t worked for me, you will always get some kind of lighting issues / artifacts or whatever on the seams.
Try to brake your modular walls only on cornors!

Lightmass is simply a big mess :slight_smile: And yeah hopefully they improve it one day… If you want any realisitc or good looking scene, forget about dynamic lighting, UE4 has sadly no good dynamic light / GI solution. You can have a look at NVIDIA VXGI, but be aware it’s very performance hungry and still experimental.

Yeah all of this lightmapping nonsense comes with good intentions, but it’s a wee bit broken. Heh, I COULD increase the LM resolution, but that’s a pretty huge number for a lightmap and I’m working on a laptop with a 1 gig video card in it! Light baking is already as painful as it is haha :smiley: It’s just sad that you can’t really go as modular as you want without planning on hiding half of the stuff. And I’m seeing quite a few modular sets in the marketplace - how in heavens do THEY hide their seams?

edit: I’m also wondering, what’s the best workaround for a large floor space then? One big mesh with a tiling texture slapped on or something else, considering modular tiles are pretty much out of the question?

Maybe not exactly nonsense… Have a look at all the realisitc interior scenes, lightmaps can give you really realistic results. I’m not sure if i’m wrong but the lightmass calculation process is more memory intensive, so your graphic card shouldn’t be the problem.
Another good advice is, just play around with lightmass and lightmaps, use different lightmap resolutions, use different settings etc… I was playing something like a week with all the settings and resolutions and i have still no answers for some of the artifacts or issues that can appear but it brought me very close to “perfect” lightmaps.

About the seams, like i wrote, try to use corners or dark transitions between you textures, normals etc… This seams are mostly visible on bright textures like a white wall etc…
You can use for a floor a 2048 lightmap… If you are using for example a wooden floor, split the floor where the wooden texture has the seams “darker areas”… at least that worked fine for me. When spliting up your floor, it is very important to have the exact same pixel density on all your parts of the mesh.

Ah when I say nonsense I mean it’s still a pretty convoluted process - the principle is simple on the surface and seems like it could be user friendly, but it seems like it hasn’t moved on much from the UDK days? At least in terms of artifacts and whatnot, I’m sure the underlying system itself has been upgraded immensly. Fact is that at least for artists stuff like this is a big roadblock - as you said, yes I could (and am in the process of doing so) hide the seams in multiple ways, but already that is making me alter my initial concept plans, which is both making me deviate from what seemed like a solid work plan, and eating up loads of time. I don’t have any super-duper-strict deadlines but I do feel sorry for the peeps who actually DO have deadlines and are running into stuff like this, even after researching lightmapping.

Basically I’m just annoyed by the fact that the flipping lightmaps are not letting me use the workflow I’m used to following :smiley: