Home Technical Talk

Yet, another Normal Map issue.

polycounter lvl 10
Offline / Send Message
GlowingPotato polycounter lvl 10
Hello Polycounters!


So, last night I was making a test with normal map baking until i realize something was wrong. So I did something very simplistic to discuss what is going on here.

The image above is a lowPoly mesh and a highPoly mesh.

KEx2GBm.png

This one is my bake results

7cGuSpO.png
Pretty much OK, until I realize that the concavity is smaller than it should be!

Now, messing a little bit with my bake settings, I realize that NOT using a cage give me the best results, but, as it should be, my hard edges is completely messed up.

sbtDbz8.png

So, looks like when I use a cage, the rays suffer a perspective distortion?
Do you guys know any way to fix this ?

I had the same results using Maya and Xnormal.
Btw, my high poly is a simple floating geometry.

Replies

  • Bruno Afonseca
    The cage is going to average the normals of the corners. Cages should be averaged so you don't have gaps in the bake.

    I'd advise you to add more geometry to your cube, keep its normals averaged. And you can bake cageless if you want. Here's what I'd do:

    polycount_cubenormals.png

    Just adding those support edges help the tangents big time
  • GlowingPotato
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Hey Bruno. Thanks for your reply!

    Adding support loops to the LP will surely fix the problem, but that's what I want to avoid.
    I actually did this to the main model, this cubes is just to exemplify.

    But after many tests, i think is indeed not possible without adding more Geo to the LP. Of course we can delete the extra Geo after baking, but its just a little annoying. =]
  • Bruno Afonseca
    If you delete the extra geo you'll mess up your normals. What you could do also is baking the concave part into a plane separately and then combining the normal maps together. Not the most practical workflow but...
  • GlowingPotato
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Actually deleting the extra geo doesn't cause any problems with my normals. It's already baked.

    But hey, I understood the problem now! The picture you posted make me think about the cage vertex normals.

    Looks like it can only be set to surface normals or average vertex normals.

    So, if I don't add more GEO, I can only have round edges and perspective distortion, or messed up edges and no distortion.

    The solution to bake this without adding more Geo to the low poly, is to actually model the concave part on the high poly, so there will be no gap to cause distortion when using the geometry normals of the cage.

    So what I learned is that the cage normals can't be manually tweaked. Its only surface normals or average vertex normals!
  • Bruno Afonseca
    Even though it's baked, tangent normal maps depend on the low poly's normals to display properly. If you do that on this example, you'll get some crazy gradients on flat surfaces.

    What you could do instead is going the handplane route, which would be baking an object space normal map using the extra-geo mesh, and turning that into a tangent space normal map using handplane: http://www.handplane3d.com/
  • GlowingPotato
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Well, in this case I had no issue deleting the extra geo.

    P4ILDXp.png
    igNlJcm.png

    Maybe because the surface is flat? But as long as I can remember, I never had problem with my normal maps after deleting the extra Geo, at least with hard surface.
Sign In or Register to comment.