Home Technical Talk

Baking normal map error / baking book pages on flat plane / random gradients

Born_Jason
polycounter lvl 4
Offline / Send Message
Born_Jason polycounter lvl 4
Decided to create some books and got some normal baking errors. So basically I'm trying to bake my highpoly book on low poly but getting some gradients in places where pages are located.

1/ So this is my low poly geo and shading in blender:


2/ low poly with baked normal map error (getting strange gradients from highpoly pages)
3/ UVs in rizom 2048x4096 (I'm baking full square 4k in marmoset)
4/ decimated high poly model in marmoset and blender for better visualization 

Google drive link with files: low poly and decimated highpoly, normal map: 
https://drive.google.com/drive/u/0/folders/1OxjH4Jyvd1kq0H3Zk49J__KYbI6lxsX2  

So can someone pinpoint me what's wrong and how to fix this normal issue ? Maybe i don't know smth or missing some pieces of information about normal maps / anyway would be grateful for any suggestions or tips how to deal with it.

Replies

  • Fabi_G
    Offline / Send Message
    Fabi_G high dynamic range
    Hi! Since the normal map is in tangent space, gradients are to be expected.
    The more import question is if the mesh shades correct with the normal map applied.
  • Born_Jason
    Offline / Send Message
    Born_Jason polycounter lvl 4
    Fabi_G said:
    Hi! Since the normal map is in tangent space, gradients are to be expected.
    The more import question is if the mesh shades correct with the normal map applied.
    Hi, with normal map applied it also looks weird with strange split in the middle (my highpoly doesn't have any splits) 
  • Fabi_G
    Offline / Send Message
    Fabi_G high dynamic range
    Curious, could you share the normal map too?
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    You likely have a few issues : 

    - The geometry of the high with the stacked individual pages is likely causing issues when baking (as opposed to having a continuous surface).
    - And perhaps you're having a triangulation issue (if it wasn't set consistent between baker and renderer).

    Getting the following in TB3 (below) after a quick remesh done in Blender. Baked at 1024.
    IMHO The top screenshot reveals that the approach used for the pages is just not playing well with baking.
      
    You're probably better off doing the pages directly as a texture as opposed to baking from a high.

  • Born_Jason
    Offline / Send Message
    Born_Jason polycounter lvl 4
    pior said:
    You likely have a few issues : 

    - The geometry of the high with the stacked individual pages is likely causing issues when baking (as opposed to having a continuous surface).
    - And perhaps you're having a triangulation issue (if it wasn't set consistent between baker and renderer).

    Getting the following in TB3 (below) after a quick remesh done in Blender. Baked at 1024.
    IMHO The top screenshot reveals that the approach used for the pages is just not playing well with baking.
      
    You're probably better off doing the pages directly as a texture as opposed to baking from a high.

    Thx for the reply /  It's probably not triangulation because I triangulated low poly in blender before baking / probably will do it in substance painter manually or redoing highpoly with different approach, but it's weird for me 
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Triangulation is not just for before baking - it's also for wherever you display your model in.
  • Born_Jason
    Offline / Send Message
    Born_Jason polycounter lvl 4
  • Born_Jason
    Offline / Send Message
    Born_Jason polycounter lvl 4
    pior said:
    Triangulation is not just for before baking - it's also for wherever you display your model in.
    I mean i didn't change the triangulation after baking, so my normal map is looking weird it was triangulated once in blender and never got change again
  • Fabi_G
    Offline / Send Message
    Fabi_G high dynamic range
    One thing to consider is the skewing that occurs when baking with a cage based on averaged vertex normals. Looks like here the skewing is more apparent because of the lamella nature of the highpoly pages.

    Checking the skewing on the original, continuos lowpoly in Toolbag, it looks like the rays will be hitting the highpoly pages at a slight angle, less so as nearing the middle of the pages.

    resulting normal map (downscaled from 2k):

    render:


    When I broke the pages part into a separate mesh, the skewing is removed, hitting the highpoly pages straight.

    resulting normal map (downscaled from 2k):

    render:


    To prevent unwanted projections, use Bake Groups in Toolbag (match by name in Painter).

    For this test, I modified the highpoly pages: Projected a subdivided strip onto the original highpoly pages and smoothed it some, to get a nicer normal map. 

    I agree with pior, adding the pages during texturing is probably more efficient and more convenient to make iterations.
  • Born_Jason
    Offline / Send Message
    Born_Jason polycounter lvl 4
    Fabi_G said:
    One thing to consider is the skewing that occurs when baking with a cage based on averaged vertex normals. Looks like here the skewing is more apparent because of the lamella nature of the highpoly pages.

    Checking the skewing on the original, continuos lowpoly in Toolbag, it looks like the rays will be hitting the highpoly pages at a slight angle, less so as nearing the middle of the pages.

    resulting normal map (downscaled from 2k):

    render:


    When I broke the pages part into a separate mesh, the skewing is removed, hitting the highpoly pages straight.

    resulting normal map (downscaled from 2k):

    render:


    To prevent unwanted projections, use Bake Groups in Toolbag (match by name in Painter).

    For this test, I modified the highpoly pages: Projected a subdivided strip onto the original highpoly pages and smoothed it some, to get a nicer normal map. 

    I agree with pior, adding the pages during texturing is probably more efficient and more convenient to make iterations.
    Thx for detailed answer 
Sign In or Register to comment.