Home Technical Talk

Problematic baking of hard edges (how to do it without adding supporting loops?)

Lemenus
polycounter lvl 5
Offline / Send Message
Lemenus polycounter lvl 5
Can't make proper bake of hard edges for low poly game model

I read posts with same problem, and all have the same answer - uv seams on hard edges and more support geometry. My model correspond to the first one, but the second one - i'm not going to do this, this is a game model, if i add it, it will be more than 22k tris! 
Is there any other way to bake it right?

Replies

  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    Did you go over all the usual checklist items?

    I won't list them all as there are an exhaustive amount of threads on this and loads of info in the stickies.

    List off your exact process to help us help you.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Looks like an inverted red channel though.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    I'm curious to see the UVs
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Easiest way to do such  things properly now is something like Bevel (rounded edge) shader in Blender2.8. Or similar thing in other soft.

    Also those support loops along hard/split edges representing beveled/ rounded ones, you need them only for doing initial normal map bake. For the final model you could remove  most of such extra loops after texture baking.
      Keep in mind also that any split /hard edge or uv seam  is no difference than a smooth shaded beveled edge without uv seam for real time calculation matter . With hard edges/uv seams  edge vertexes are being doubled anyway.  

    I prefer to bake into object space first (16 bit image). You rarely  need extra cage object in that case. Then convert to  tangent space  by xNormal, Substance Designer, Mari, whatever
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    gnoop said:


    Also those support loops along hard/split edges representing beveled/ rounded ones, you need them only for doing initial normal map bake. For the final model you could remove  most of such extra loops after texture baking.
     
    This is wrong.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Obscura said:
    gnoop said:


    Also those support loops along hard/split edges representing beveled/ rounded ones, you need them only for doing initial normal map bake. For the final model you could remove  most of such extra loops after texture baking.
     
    This is wrong.
      It's just  one of  dogmas people have been taught sometimes. I mean that you couldn't touch your geometry after the normal map is baked.  Generally you couldn't   but in some specific cases you perfectly can.

    in a word you can remove support loops where they fall onto flat 127,127,255 normal color or where  is zero difference in between hires surface normal direction and low res one and there is no shading gradient in low res object.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Alright, now this is a much more correct explanation.  :) Thanks.
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @gnoop you said you're baking object space maps so the 'skewmesh' method is used to remove all the support loops before conversion to tangent space.

    And yes, I've often removed geo post bake. 😁
  • Thanez
    Offline / Send Message
    Thanez interpolator
    This entire thing looks like mismatch of expected Y+- direction. Flip your green channel either on the normalmap, baker, or renderer.


    These little rebois tho, look like a too big disparity between your highpoly and lowpoly. Read the thread on wavyness in normalmaps

  • gnoop
    Offline / Send Message
    gnoop sublime tool
    @gnoop you said you're baking object space maps so the 'skewmesh' method is used to remove all the support loops before conversion to tangent space.

    And yes, I've often removed geo post bake. 😁
    Yes, before conversion of course. The only matter is to set right axis order , Y or Z up etc and   directions.  Xnormal , SD,Mari etc  assume it differently
    For Cycles in Blender 2.7 and Xnormal I set +X +Z -Y for example.    SD seems does it just same way as  any  Y up kind of soft.

    In fact for such a simple geometry OP sowed you could do all this even without support loops and even without hi poly object.  You just unwrap your model and apply bevel/chamfer  modifierl, make sure there are  no shading gradients,  do face weighting  where you may still see gradients but usually chamfer/bevel modifier kills them by itself and then  just render surface color with a kind of world space normal shader or simply world/object space normals without any low to hi projection.  
    I think Arnold could do it. I use gpu based Octane which do it super quickly together with AO pass.

    Then remove bevel modifier from your model , triangulate and feed to the convertor. In MAri it's just a procedural layer  doing it instantly.


    Here is Cycles \Xnormal conversion.  There was no hi res object or cage at all.   It does that bad highlight on the very corner  same as with baking Bevel shader in Blender 2,8.  I guess it does  basically  same thing under a hood.  

    In  SD or  MAri for example I saw no seam artifacts at the corners at all . Maybe because I fed them 32 bit exr  world space renders, I am not sure.

Sign In or Register to comment.