Home Technical Talk

Seams in Normals when Creating Tiling Environment Trims and other Tiles

polycounter lvl 18
Offline / Send Message
TelekineticFrog polycounter lvl 18
So I was running into a problem where I was getting a "ghost" seam on my in game mesh that for the life of me seemed to be stubborn about going away. No mirrored UVs, no UVs overlapping, no discoloration in my Normal Map via gradients or other abnormals, etc. I ran through everything I could think of and still had no luck. I had several people look at it all and stumped them on why it seemed to exist. I wasn't alone though in that others had the same issues often enough that they knew what I was up against.

So tonight I was thinking on the drive home "WTF there has to be a way to get rid of that annoying seam". Then it hit me that maybe I shouldn't break my seam on the tangent of an edge where the normals have to face opposing directions. So I opened up the file and grabbed the problem edge loop and split the ring to the right of there to make an offset edge loop while preserving my UVs. I then shuffled my UVs to the left and dropped in the new offset section to the end on the right, welded the edges that were not at the ending right and left. Did a rebake on the normals.

To my surprise this worked and now there is no mystery ghost seam. Only thing I can see sucking is that you have to leave in the offset edge loop to pull this off and that adds a few extra polys to the low.

Now I'm wondering is this a common technique and I just stumbled into it. Does anyone else do this? Is there perhaps another way to solve this without adding extra polys and the offset edge loop? I mainly was running into this when creating tiling textures that are trims (horizontal / vertical strips that tile left to right only or up and down only). Anybody out there who also is an environment artist or just knows other solutions or info on this, please chime in and spread the knowledge.

Replies

  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    Screens would be helpful yes, hard to follow your issue just with words.

    It's not an issue of you having hard edges (different smoothing groups) on your mesh and having the same edge sewn (welded?) in the UV-map?

    If you have hard edges you need to separate along that edge in the UV map. Well at least if you are going to use any kind of texture filtering.
  • Eric Chadwick
    Options
    Offline / Send Message
    Yep, I'm with kodde. Sounds like the opposite though... the triangles on either side of the seam use a normalmap with UVs going in opposite directions, but the triangles re-use the same vertex normals (1 smoothing group). They share vertices along the seam, but each of those verts only have a single tangent/bitangent/normal, so the normalmaps are telling the normals to suddenly twist to a new direction, creating the seam.

    Splitting via a chamfer/extra edgeloop, or via a different smoothing group, either way should solve it.
  • TelekineticFrog
    Options
    Offline / Send Message
    TelekineticFrog polycounter lvl 18
    What Eric said. It wasn't a matter of having hard edges and the UVs being sewn up. It was the verts having opposing normal information to the map applied.

    The thing with having different smoothing groups (hard edges) and getting that split hard seam from doing so, is there a good workaround for that? I've heard of double baking out one with and then one with all polys using a single smoothing group and then in photoshop masking out the bad edges with the good from the other. Is there a more efficient way to do this with multiple smoothing groups, avoid the hard seams via topology of the mesh?

    As for my original post I can try and make a few supporting images to show what I did soon and put them up. Unfortunately I can't show what it was on because it's for work so I'll need to make a generic mesh to show what I was seeing and how it was fixed.

    Thanks for all the info and assistance.
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    You mean like having hard edge(different smoothing groups) and still having UVs sewn along that same edge? I don't think there's any solution for that problem since it's an issue of texture filtering sampling along that UV edge, it needs to have a bit of padding with similar color to work nicely.
    At least that's what I have experienced when experimenting with it.
  • Eric Chadwick
    Options
    Offline / Send Message
    I would simply hide the problem by adding a crease in the design, between the wall and the trim. Then you can hide the split vertex normals down in the crease.
Sign In or Register to comment.