Home Technical Talk

Triangles in normal map

null
Offline / Send Message
Medusa3d null
Hello everyone :)

I've been doing highpoly modeling for a while, but I'm a lowpoly beginner and I have a couple of questions about it.

As a first proper lowpoly test I thought I'd make an ammo crate. Couldn't be hard, right? :) All went well until I had to bake the normal map. I get strange triangles here and there, that I assume shouldn't be there.

I've modeled both highpoly and lowpoly in Max and with Textools I've set the smoothing groups based on UV shells. I've baked the normal maps in both xNormal and MightyBake, but I keep getting triangle errors. What am I doing wrong? I did a lot of research, but so far with no success on this matter.

I've attached 3 images: the object with normal map in Marmoset, the object from max and a problematic part of the normal map.

So my questions are:
1. What is creating these triangles on my normal map? Is it something in the baking settings? Is it the topology?

2. Assumming the ammo crate I'm making is for a AAA game and the player would get close to it,  what would the polycount be? What do you count, triangles or vertices?

Thank you!

Replies

  • Quack!
    Options
    Offline / Send Message
    Quack! polycounter lvl 17
    1. What is creating these triangles on my normal map? Is it something in the baking settings? Is it the topology?

    This is intentional and working as expected.  The normal map bake is compensating for your low polys topology and placing those edges in there so that when displayed it will display correctly.
    To get this normal map to display correctly you need to show your model in a viewport that is 'synced' to xnormals baker. Substance Designer/Painter, Toolbag2, Unreal Engine, Unity, can all be synched to your bake. Don't use max or maya's viewport to look at your normal map on your model, always look at your model in your game engine. Also, it isn't very valuable to even look at the normal map texture of your object by itself, you can only gleam so much.

    2. Assuming the ammo crate I'm making is for a AAA game and the player would get close to it,  what would the polycount be? What do you count, triangles or vertices?

    Varies wildly. Verts are dirt cheap. For a modern FPS I would not balk at 0-10k verts if the model called for it.  However, it is crazy situational and will vary.
  • EarthQuake
    Options
    Offline / Send Message
    Triangulate the mesh before baking, and then set the tangent space in Toolbag to Xnormal/Mikktspace
  • Bartalon
    Options
    Offline / Send Message
    Bartalon polycounter lvl 12
    Those dark diamond shadows you see are specifically caused by your triangle edges being oriented in different directions between your modeling and baking packages.  Manually triangulating will "set" the edge direction and prevent any software (modeling, rendering, engines, etc.) from picking something different.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Also, if baker and destination are the same tangent basis(synced) then you don't have to concern yourself with hard edge/uv splits, just set the mesh to a single smoothing group and let the baker/destination compute the normals. This allows for more flexibility when unwrapping and less added verts from splits.
  • Medusa3d
    Options
    Offline / Send Message
    Medusa3d null
    Thank you so much for your replies, you've all been extremely helpful!

    I triangulated the model before baking, set everything to Mikk space and... tadaaa! It works! :pleased:

    But what I did notice is that if I increase the reflectivity, when I get close to some areas, there are these triangles showing up. Is this something that I should worry about? Or is it something that will not be visible once there's actual textures in those slots?

    Also, what format are you using for the maps? For the normal map I noticed .tiff seems to be the better option. .png had compression artefacts and .exr looked pretty much like .tiff



  • EarthQuake
    Options
    Offline / Send Message
    These are resolution-based smoothing errors that you can't really get around unless author the texture at a larger size. 

    When you finish the material you're unlikely to notice them.
  • ZacD
    Options
    Offline / Send Message
    ZacD ngon master
    Those artifacts are expected, you can make them go away by increasing the normal map resolution, but you most likely won't be seeing them in game unless you have a material with a very glossy surface.

    You can also try to reduce those errors by controlling the shading on the low poly with smoothing groups, hard edges, or custom normals.

    Also MUSASHIDAN, UV splits increase the vert count so adding a smoothing group or hard edge is free. Using one smoothing group is simpler, but there are benefits to controlling the shading with hard edges or smoothing groups.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    ZacD said:


    Also MUSASHIDAN, UV splits increase the vert count so adding a smoothing group or hard edge is free. Using one smoothing group is simpler, but there are benefits to controlling the shading with hard edges or smoothing groups.
    yes, I was referring to uv splits increasing the vert count. If using a completely synced workflow and relying on the NM for all edge detailing then they are unnecessary.
  • ZacD
    Options
    Offline / Send Message
    ZacD ngon master
    Not completely, normal maps tend to mip better and you'll get less of those line artifacts like in the above image if you use hard edges on seams.
  • Medusa3d
    Options
    Offline / Send Message
    Medusa3d null
    Ah ok, got it.  Made a test with one smoothing group on the whole object, and multiple groups, based on UV shells. Seems to look a bit better with the hard edges where the seams are.



  • Medusa3d
    Options
    Offline / Send Message
    Medusa3d null
    Increased the normal map size too and there's almost no artifacts, no matter how close I get to the object. Thank you very much everyone, for clarifying things :)


Sign In or Register to comment.