Home Technical Talk

Normal Mapping - Surface vs Geometry Normals

PredatorGSR
polycounter lvl 14
Offline / Send Message
PredatorGSR polycounter lvl 14
I've noticed when normal mapping that selecting surface normals or geometry normals in the Maya bake settings gives much different results. Both methods result in errors in the maps, but in different ways. I was hoping that someone had advice on how to achieve bakes that don't suffer from these issues, and to see if this is just a Maya problem or a universal one.

Breakdown: Tangent Space Maps

Geometry Normals:
Pros: Clean normals across hard edges/uv splits
Cons: Distorted surface details

Surface Normals:
Pros: Clean undistorted surface detail
Cons: Seams on every hard edge and uv split

Example:
normals1.jpg

normals2.jpg

Replies

  • Sage
    Offline / Send Message
    Sage polycounter lvl 19
    well why don't you bake both versions and combine them in photoshop. Keep what you like.
  • EarthQuake
    adding in an extra edgeloop(and 12 tris) will sort out the skewing issue from surface normals version, two loops max. I generally tend to just add in the small amount of extra geo to fix these issues, as its a pain to do any other method. You can bake both and mask, but this is a slow workflow if you ever had to make changes, as you have to bake your normals, ao, color masks, etc, all of that shit twice. This isnt simply a maya problem, but a universal one in every app, the methods are just named differently(in max using cage = geo normals, offset = surface normals, XN default = surface normales, the long and slow process of setting up a cage and welding your verts = geo normals).
  • Whargoul
    Offline / Send Message
    Whargoul polycounter lvl 18
    Make your low poly have all soft normals and use surface.
  • PredatorGSR
    Offline / Send Message
    PredatorGSR polycounter lvl 14
    That doesn't really work if its going to be used in a game engine...
  • EarthQuake
    Whargoul wrote: »
    Make your low poly have all soft normals and use surface.

    You'll still have the same issue, as softening the normals on your mesh is the exact same thing its doing when you use geometry normals(just only on the "bake" mesh).

    The difference between surface and geometry normals is this:

    Surface normals takes the normals of your lowpoly mesh into consideration when baking. So for every hard edge you get a split, this results in nice clean non-skewed details, but you miss detail because you get "gaps" as the broken edges are pushed outwards to encompass the high.

    Geometry normals averages the normals of your lowpoly envelope/cage, so you have soft, seamless smoothing, and no gaps in projections. This results in hard angles being averaged, and the ray direction at those points rotating, which is perfect to capture edge detail, but results in skewed detail in other areas.
Sign In or Register to comment.