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
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.
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.