Home Adobe Substance

Curvature map, Ambient occlusion and thickness map

Hello, 
I would like to ask few questions about three maps which can be baked in Substance painter. I was trying to search more informations about this but i am unfortunately not able to find how are this maps generated. From what ? Lets say that i am baking these maps just low poly to low poly , no high poly. How is curvature generated ? UV seams ? smoothing groups ? normals of faces ? where it gets its informations to make concaves and convexities ? The same question goes for AO map and thickness... I am just trying to understand better how are this maps generated so i can have better control over this. 
Thank you very much for responses! 

Replies

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    The process is the same whether you're baking low-to-low  or high-to-low - substance simply uses the low mesh in place of a high mesh

    curvature is generated from the normals of the mesh - in Substance's case I believe it renders a world space normal map from the source mesh and derives the curvature from that - this is likely many times faster than deriving the curvature 'properly' during projection.  
    What it represents is the rate of change in normal direction across <n> pixels, the maths is relatively simple - its basically just dot(pixelNormalA, pixelNormalB)  - the sign of the result telling you whether it's convex or concave 
    Curvature can appear to be affected by UV seams but that is a by-product of what's happening with the mesh normals. 
    the TLDR answer to your question is..  mesh normals


    AO and Thickness are basically the same thing - it's just the direction that differs. AO projects outwards, Thickness projects inwards
    Many points are sampled on the source mesh, rays are cast out in a hemisphere from each point and if they hit some thing that point is occluded and gets an appropriate color assigned. 
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    I think that Sobel math style   "rate of change in normal direction across <n> pixels"    is what causes seams   issues   working in UV space . 
    in Blender you could  just do dot product with world space  normal map   ( Considering the world space normal map is baked  as direct  output (emit) with -1-to-1  scale )   It gives same edge for convex and concave parts  but if you render AO too  it could  let you mask  to certain extent in between those two.      Not sure why Substance  doesn't have that option  for low res only, based on normal map  bake.   Would let to get rid of those nasty seam artifacts when you don't need hi res model really. 

    Or  perhaps position  input/ bake could be  helpful to sample neighboring  normal vector to distinguish   instead of UV space but  I never managed to figure out it .



  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    I'm fairly sure it must be using a world space map when baking low-low in substance - you'd get an empty texture otherwise. 
    iirc you can composite a tangent space normal into that at bake time as well so i think that covers what you're asking for. 

    since you mentioned the sobel/seams interaction ..
    yes - that hadn't occurred to me earlier.  You could still get artefacting at seams with a world space normal if the padding/diffusion around shells doesn't work out right for you as well. 
  • gnoop
    Offline / Send Message
    gnoop sublime tool

    poopipe said:
    since you mentioned the sobel/seams interaction ..
    yes - that hadn't occurred to me earlier.  You could still get artefacting at seams with a world space normal if the padding/diffusion around shells doesn't work out right for you as well. 
    I mean those seams when baked with imported from Blender normal and world normals maps done by using bevel (rounding corners) shader.    Both having plenty of padding.

    that "enable seams" option  doesn't fix them actually.  Whatever it's doing.
  • Polygon_seal
    Thank you very much for you replies ... you´ve helped me a lot to understand better what is going on there.
Sign In or Register to comment.