Home Technical Talk

Mirrored Geo Seam

polycounter lvl 5
Offline / Send Message
Mr-Brett polycounter lvl 5
I've been trying to fix this one for a while now but I just cannot work it out.
As you can see from the image it doesn't seem to be a texture issue since it happens with untextured models, also I should mention that in Unity it happens when the model is untextured with my custom shader but not with the default shader in the image.

Mirror_Issue.jpg
Mirror_Issue_02.JPG

I'm exporting triangulated, have tried OBJ and FBX, mirrored UVs are at 1 (as above), I've tried manually editing normals, nothing seems to have any effect.

I'm hoping this is something simple and I'm just a fool :)

Replies

  • Farfarer
    Is the mesh triangulated symmetrically on either side of the mirroring seam?
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    It seems to be:
    Mirror_Issue_03.jpg
  • Farfarer
    Hmm, so it's probably not that.

    How was the baking done? Did you bake, then mirror over... or did you bake with the mirrored bit in place but offset in UV space? If you can show your normal map and high/low mesh it might help make the issue more obvious.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    I mirrored and offset the UVs then baked but since it's not shading correctly without a map can it really be a baking issue?
  • Bartalon
    Offline / Send Message
    Bartalon polycounter lvl 12
    If you are working from an imported mesh, normals often become locked on export and remain that way even when imported back into your modeling software. Try unlocking your normals and setting up your smoothing groups again.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    I created the mesh from scratch in 3D Max, also it doesn't seem to treat normals in the same way but the closed I could find was 'edit normals' which I've tried and it doesn't seem to make any difference (well it can make it worse :))

    Thanks for the ideas guys.
  • Mark Dygert
    Can you turn on wireframe in Unity or Marmoset and make sure the invisible edges are flowing the same way as they do in 3dsmax?

    If they flow differently, make sure you triangulate before you bake/export.
    In Max hidden edges can flow any which way [\][/] but a non visible edge to another program tells it to set the triangle striping any way it chooses so [\][/] becomes [\][\] and you get a seam because your normals no longer match.

    The easiest way to triangulate without destroying your quads is to add a "Turn To Poly" modifier to your stack, set the number of sides to 3. Then you can delete it or turn it off and your back to quads.
  • DavidCruz
    Offline / Send Message
    DavidCruz interpolator
    Another way if your into manually editing your triangles or want to, you can go to edit mesh, select edge then selected all of them you'll see all the edges, locate the Turn option and you will have to manually turn all the edges to the direction you want. You keep your quads just deselect the edges by clicking on the outside viewport. Also turn on facets + highlights helps you see whats going on better, remember to turn it back to smooth and go to edit poly again if you want or need.

    At first it might seem like a lot of work but you'll be done soon enough, seems your mesh is small enough so it should be done in no time.

    ^This however when working with characters you have to stay on point with how the mesh will deform if your around a lower poly range, i don't think higher meshes matter so much with this but i would do it anyway.

    Nice mark i didn't know about turn poly, wonder if my way is redundant?
    Good luck.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    @Mark Dygert - The image above in my second post is from marmoset. I tried Turn To Poly anyway, that's a good tip but I'm afraid it still had the same result.

    @DavidCruz - I haven't turned edges in quite some time, kickin' old school :)
    It's a good idea but I think you're right, Turn To Poly is probably a better solution in this case. A combination of the two might work well in future though, for situations where you want the edges turned in specific ways in some places but aren't bothered about the rest.

    I thought it was time I tried a new scene in case it was Max up to its old tricks but still no luck, this one really has me stumped.
  • Eric Chadwick
    Are you letting Unity create the tangents? In the FBX import settings. That solves it for me.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    OK so I just did some experimenting with that, yes unity was calculating the tangents but when I set those to import the green channel on the mirrored part is inverted. I have reset the xform and unified the normals which I thought was enough to fix the mirroring inverted problem but maybe not?
  • Eric Chadwick
    Can you post an example Max file + texture?
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    Max file and normal map
    It should be pretty self explanatory what is what but HP = high poly, LP = Low Poly and there's a quick and dirty cage made for testing.
  • Eric Chadwick
    Not Found
    The requested URL /Mirror_Issue.RAR was not found on this server.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    Sorry! I forgot to check the link which is rather poor form. It now works.
  • Eric Chadwick
    Well something is seriously fucked up with your model. Seems to bake OK. Except mentalray does a poor job since you have to manually hide the lowpoly model. But the UVs are all messed up in Unity. And there's a screwy set of vertex normals under the front lip.

    When I try attaching the lowpoly in Max to a Box, the view scales oddly. Very strange.

    Try cleaning this file out in Max, by exporting the meshes as OBJ, quitting and restarting Max, then importing them into a fresh scene. Rebake, re-export FBX, etc.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    Interesting, I did as you suggested and also tried attaching to a box then detaching and the top part seems to be fixed the rest is still broken. It is all very strange, I've had this with every mesh I've mirrored in this project.

    I did some tests with boxes trying to see if it was the scene file being corrupted or something else. Any time I use mirror or symmetry it happens. Is that normal? should the bake account for it? If not then can someone else try creating a box, mirroring and exporting to marmoset or unity and checking with a material with high reflectivity? (for the sake of my sanity).

    Thanks for you help Eric, I really appreciate it :)
  • Eric Chadwick
    Yeah, strange.

    What version of 3ds Max are you using? And what version of FBX in 3ds Max? How exactly do you mirror the model?
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    Max 2014, FBX 2014.0.1
    Mostly I use symmetry but mirroring object, attaching and welding also seems to have the same result.
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    If I remember correctly Max2014 and fbx 2014 were broken. Try using an earlier or later version.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    I got the trial of Max 2016, imported the model, reset everything, exported and no change.
    Created a box, used symmetry, offset UVs and exported, same deal. So I can't help but think it's just something that happens when you offset UVs (this project is the first time I've done that) but obviously other people do it all the time and don't get it so maybe I'm somehow doing something wrong with the UVs?
  • Eric Chadwick
    I did a test with Max 2015, worked flawlessly for me. I had to add a Turn To Mesh modifier, to prevent the FBX UVs from freaking out.

    http://www.ericchadwick.com/examples/files/Box_Symmetry_2015.zip

    sLwLwYs.jpg
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    Eric, I just want to say thanks again, maybe it's normal around these parts (I'm new here) but you've been very generous with your time and that's very cool of you :)

    Ok so I followed your lead there and tried something very similar aaaaaand still noticed it. At this point I'm wondering if I'm being super picky because it's only at particular angles with very high reflectivity that it's noticeable plus it's quite subtle a lot of the time.

    Mirror_Issue_05.JPG

    Eric would you mind uploading or sending your test so I can try it out for myself?
  • Eric Chadwick
    See the zip in my last post.

    But anyhow that seam is super minor. You'll never notice this on an actual asset, once it's textured and in a real game lwvel.

    If it's a large asset, you won't be mirroring anyhow, you'll be using tiled textures etc.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    I'm not sure how I missed that link...

    I think it's happening with yours but it's hard to tell so maybe I'm just expecting too much. This is a finished asset it's a simple style I'm going for so unfortunately the flat colour shows the seams really well.
    With normal:
    Mirror_Issue_06.JPG
    Without normal:
    Mirror_Issue_07.JPG

    So I'll probably have to redo it as a non-mirroring mesh and have a larger texture I guess?
  • Eric Chadwick
    Pool tables are not shiny. But this is a pretty major seam. If you can still see it with a felt texture, and you can't get rid of it, then make the flat part one texture and mirror the rest. Basically, offset the mirror seam. This is an old technique for doing heads... the middle of the face is unique but the sides of the head are mirrored.
  • Eric Chadwick
    Try one more test... bake a 16bit TIF normal map, and convert it to Unity space using Handplane.
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    Thats a 16bit tiff object space map.
  • Mr-Brett
    Offline / Send Message
    Mr-Brett polycounter lvl 5
    It's a space pool table! Everything is shiny in space :)

    I tried the object space map and handplane method and it's a tiny bit better but not enough, So I guess I'll make an exception for the pool table and reduce the reflectivity. For other models I'll have to be very careful about how I mirror and avoid any shiny areas.

    It's a shame that there wasn't a full fix but I've learnt some stuff and thanks to everyone who replied :)
Sign In or Register to comment.