Normal Baking Troubles (Blender) - Any Good Resources for Baking?

So I began working on this project. However, I began to try baking normal maps, I had some trouble. I thought that maybe needed some practice first since I'm still new to the CG field. I created a challenge where I would UV unwrap and bake normal to objects, starting with a cube.
However, this would be harder than I thought. I was able to bake this... (This image is compressed and has a lower resolution. Was originally 4k.)
Looks like a traditional normal map, but the problem with this normal map is that it would make the faces of the cube go inwards and looks inaccurate to the high poly model.

I have no idea how to fix this. I kept looking online for resources but they we're no help towards my solution. Can anybody help me with this and can anybody leave resources on normal map baking? Thanks.

More Details:

Replies

  • Animas
    Offline / Send Message
    Animas triangle
    I'm pretty sure there I've seen the exact same problem somewhere here already (thou I'm sure there are more than one of these threads in the long run).
    The general answer last time was, add more support geometry or use a different shape for test, if I remember correctly.
  • Prime8
    Offline / Send Message
    Prime8 polycounter lvl 4
    Look at your material node setup, you probably need to switch the color space of the normal map to non-color data.
  • gnoop
    Offline / Send Message
    gnoop polycounter lvl 8
    it never going to be perfect on such objects.    Blender or whenever.  You have two possible solutions:
    1.make hard edges/split vertex normals/smooth  groups  on low poly cube and split Uv edges/ shells accordingly. 
    2. make small bevels on low poly   with edge vertex normals rotated to be perpendicular to cube sides

    There is no much of a difference for a game engine if your model have split hard edges or beveled ones since with split edges the engine would calculate  vertexes two times anyway

    Ps.  Except in my example it would split on uv shells anyway too  so with beveled edges you probably could keep your initial single cross UV shell
  • musashidan
    Offline / Send Message
    musashidan polycount lvl 666
    On a sidenote, try out Textools plugin for baking. Much better than Blender's clunky native method.
  • MeshCrafter
    I tried adding bevels on each edge around the cube. UV unwrapped it again, which resulted in this...
    When baking the normal again, it resulted in this...

    This is what the normals look like when auto-smoothed...

    None of these normal maps provide the results i want. I even tried a cube with bigger bevels and non-color data but that didn't work.

  • gnoop
    Offline / Send Message
    gnoop polycounter lvl 8
    I forgot to mention that with method1 you need a cage. it's easy to do with "solidify" modifier and "only rim" checked in.   It works with Cycles render and Textools plugin baker.


    UV shells should be detached where sharp /split edges are


    As of method 2  with beveled /not sharp edges + edited normals  you have to keep in mind  few things.
    1. It bakes ok only with old original Blender renderer.  Looks like Cycles and Textools both ignore edited custom normals and use original ones for ray tracing but as a plus you could cope without the cage in many cases

    2. Your hi res model should   be densely  tessellated or you may need extra loops before rounded bevels the way all the flat surfaces would stay perfectly flat shaded, no shading gradients/ artifacts etc.

    2. You should keep small UV parts of the bevels attached to main body uv shell . Otherwise it just doesn't do any sense at all and makes lots of extra geometry splits.  
      Make proper seams  before unwrapping and use "conformal" unwrap method in unwrap options

    In a word you should avoid any shadig gradients on any flat surfaces. Just keep low poly object vertex normals  perpendicular to what supposed to be perfectly flat .  Do it either by sharp edges  or by editing vertex normals itself. Both approaches sometimes need extra support edge loops.
  • Prime8
    Offline / Send Message
    Prime8 polycounter lvl 4
    ...
    None of these normal maps provide the results i want. I even tried a cube with bigger bevels and non-color data but that didn't work.

    Still looks like the color space is set to srgb.
    Do you mind showing your node setup?

    I wouldn't add bevel, edit normals or make any changes at this point until you find out why your first attempt doesn't give the expected results.
  • gnoop
    Offline / Send Message
    gnoop polycounter lvl 8
    "Still looks like the color space is set to srgb"


    It depends on where it's going to be used.   If it's Cycles it only allows to choose in between "color" and "non-color" data in texture nodes.  I believe it should be "non-color" for normal maps and displacements.
      It supposed to keep image color space as it is  while for "color" setting Blender would de-gamma image first, linearizing it before feeding into rendering pipeline.

    If it's old Blender render  or "Blender game"  or just GLSL viewport  it works kind of clunky. I suggest to use original texture panel, the one existed before nodes were introduced. There you could care less about color space once  the texture is checked in as "normal map" in "image sampling"  settings. Blender would know it's linear anyway.

    For 3d party game engine it's better to preview in GLSL viewport or blender game  render settings and use that old fashioned texture panel instead of nodes IMO.

Sign In or Register to comment.