Modular level - seams between meshes

Hello everyone,

I’ve just started learning Blender. In my latest project I tried to create a set of modular tunnels that would allow me to quickly create a whole level from pre-made pieces. It all went smoothly until I actually started putting my prototype models into Unity. I have vertex-snapped them together, but after some playtesting I noticed that there are visible seams where the models meet.

Here they are connected together in Blender. Notice that they fit perfectly:

And here’s a close-up of the part where they meet in Unity, with a seam visible:

A video illustrating the problem:
https://youtu.be/YcvqrUzJAHk

As you can see in the video, the seams only show up where the models of different type meet (there’s no seam between two straight tunnels, but there’s a seam between a straight tunnel and an L turn).

I tried researching it and fixing it on my own for a few days now, but to no avail. I’ve read that many people had similar issues, but the solutions varied wildly and none of them seem to work for me. From what I’ve read so far, the main culprit might be floating-point rounding errors causing inacurrate snapping. Could that be the case? And if so, is there a way to alleviate it, like using certain dimensions in Blender, or scaling?

If you have any idea how that could be fixed, please help.

Well, the problem is your faces on the actual connecting side (the small strip that goes around your section). If you put two sections next to each other those faces will touch each other will cause z-fighting with the outer faces. The best solution is to remove those faces completely and if you need that section to be open, add another “module” that only includes the “end-cap” for the section.

Another way would be to “mark” which triangles belong to the connecting area and remove them at runtime via scripting. However this could cause several other problems. The simplest solution is to remove those faces completely.

Ok, I think I got it. I’ve remade my models starting from a plane situated at the origin point (coordinates 0,0,0) and I made sure that the base of my model is exactly 2 units by 2 units. Then I have created the rest of my modular blocks according to those rules (you might want to create a base model that you’ll modify and save as a new model). After putting those into Unity there were still tiny amounts of white dots bleeding through the seams, but changing my camera background color to black made it unnoticeable (my current material is pretty dark, you might want to use brigter background color for brighter materials).

Here are some of my models: