Home Technical Talk

3ds max vs Xnormal bakes differences

polycounter lvl 10
Offline / Send Message
SuperFranky polycounter lvl 10
Playing around with baking in 3ds max and Xnormal and noticed some big differences between them. For some reason 3ds max bake give much worse results than Xnormal's... Skewed details, shading artifacts. Both are viewed in Marmoset with proper tangent spaces and baked with the same cage. Is there something wrong I did with baking in 3ds max?

http://i.imgur.com/7vtntqV.jpg -xnormal
http://i.imgur.com/ZoR5pso.jpg -3ds max

Replies

  • s6
    Options
    Offline / Send Message
    s6 polycounter lvl 10
    Definitely interesting. I'm going to run some tests when I get home. See if i get similar results. Maybe someone will stop in and drop some knowledge on how the rays are cast and all that jazz.
  • SuperFranky
    Options
    Offline / Send Message
    SuperFranky polycounter lvl 10
    If that's relevant, both bakes were 16bit TIF format. I tried different formats too, but it doesn't matter in the end. All those shading artifacts are present in the normal map itself. I also tried to set up different cages, but that didn't fix anything. I triangulated my low poly mesh and it fixed skewed lines on the right, but not shading artefacts on the letters.
  • snoop
    Options
    Offline / Send Message
    snoop polycounter lvl 7
    It's been known for a while now that the tangent space calculators in 3dsmax (especially) and xnormal are different. Xnormal and maya's tangent space calculators are more suited for games iirc. Max is somewhat notorious for shading errors and smoothing issues.
  • SuperFranky
    Options
    Offline / Send Message
    SuperFranky polycounter lvl 10
    snoop wrote: »
    It's been known for a while now that the tangent space calculators in 3dsmax (especially) and xnormal are different. Xnormal and maya's tangent space calculators are more suited for games iirc. Max is somewhat notorious for shading errors and smoothing issues.
    This is new to me. Looks like I'll have to use Xnormal for my bakes.
  • s6
    Options
    Offline / Send Message
    s6 polycounter lvl 10
    Would it be possible to get the context of the bakes? It seems the areas in question are really really small and likely to go unnoticed.
  • SuperFranky
    Options
    Offline / Send Message
    SuperFranky polycounter lvl 10
    s6 wrote: »
    Would it be possible to get the context of the bakes? It seems the areas in question are really really small and likely to go unnoticed.
    Letters aren't very big and will likely be unnoticed if looking from a distance, so it's not a big deal.
  • snoop
    Options
    Offline / Send Message
    snoop polycounter lvl 7
    This is new to me. Looks like I'll have to use Xnormal for my bakes.

    Yeah I could show you some posts from a year or two ago but I don't have them bookmarked or anything. However, it was rather unanimously decided that when it comes to normal maps, and you aren't going to just being using 3dsmax as a rendering utility (i.e you want to use the model in a game, marmoset toolbag, etc.), you should use Maya or xNormal to bake normals. 3dsmax rather unfortunately gave the most sub-par results.
  • SuperFranky
    Options
    Offline / Send Message
    SuperFranky polycounter lvl 10
    snoop wrote: »
    Yeah I could show you some posts from a year or two ago but I don't have them bookmarked or anything. However, it was rather unanimously decided that when it comes to normal maps, and you aren't going to just being using 3dsmax as a rendering utility (i.e you want to use the model in a game, marmoset toolbag, etc.), you should use Maya or xNormal to bake normals. 3dsmax rather unfortunately gave the most sub-par results.
    Interesting, thanks for the info:thumbup:
  • Mark Dygert
    Options
    Offline / Send Message
    Once you get all of the parts of a material working you hardly notice, but I agree on a micro level max starts to fall apart, still for a lot of jobs it works just fine so a lot of people will use it, mostly out of convience, jumping back and forth between 2 apps is a pain, that is if max worked right.

    The problems for me aren't so much technical, most of the time those are forgivable, but workflow... oh boy... it-be-WONKY.

    If you add more than one output map type then it fubar's the padding.
    If you render normal maps with Mental Ray it will also turn the background white, even if the background color is set to the correct shade of blue in RTT.
    3dsmax_MentalRayPaddingIssue_N.jpg3dsmax_MentalRayPaddingIssue_AO.jpg

    So if you want to use max you have to...
    1. Set renderer to Mental Ray.
    2. Set up AO output path.
    3. Render.
    4. Remove output from RTT.
    5. Set renderer to scanline.
    6. Set up normal map output.
    7. Render
    8. Remove normal output from RTT.
    9. Set up diffuse output path.
    10. Render
    11. Remove the diffuse output.
    12. Repeat 8-10 for any other map types, spec, gloss, alpha, height ect...
    13. Forget about cavity maps that isn't possible in max.
    14. If you find any errors or make any tweaks, start over.

    Other known bugs and annoyances:
    If you have anything but single selected in the "Render Output Dialog" (completely separate window) it will start rendering out maps for each frame. If you aren't paying attention it might look like its taking a really long time to render, but actually its rendering the same map 100 times. Setting it to single screws you over later, if you render animations with Batch Render. Having it set to single will cause max to write every frame to a single file, even if you specify a range and tell it to override the Render Output Dialog, hoooray!

    Basically it's a huge clusterfuck.
    Clapper.gif

    About the only thing Max has going for it is that your editing app and your baking app are the same so you aren't dancing back and forth between two programs. You can edit the projection cage in max which is nice, but with Nitrous viewport you can't turn on the shaded cage, it makes it 100% opaque so it's kind of useless, with all of the dancing you have to do inside of max, to get "mediocre results" its actually less hassle to use xNormal, ha.

    Maybe they finally fixed all of the baking workflow issues in newer versions of max. They've been in there since 3dsmax2008-09, I'm on 2014 and they are still there.

    A lot of people will use Max to get most of the major bugs worked out, then jump to xNormal for a final bake. xNormal also bakes out cavity maps which max does but not through RTT and it doesn't projection bake from high to low, it only samples the same model, which would be your low poly... which is kind of pointless, heh.
  • ElleKitty
    Options
    Offline / Send Message
    ElleKitty polycounter lvl 3
    Hey Mark!

    I'd like to mention that you dont need to render them one by one; the AO seems to be the only one that is causing this issue. If you render just AO, or everything except AO, the padding turns out just as it should. I solve this by setting all the textures, I save my scene and delete the offending shaders, then render; reload the scene, render the remaining shaders (after deleting the opposite ones), reload once more so that I get them all back into the RTT dialogue again. While still bothersome, it's the AO map that is the only culprit from my experience.

    I cant find that same topic again (was months ago) but I discovered that AO is the problem from one of Mark's own posts, thanks.

    I think I'll look back into xNormal again though. I'm only sticking to Max cause I dont need many maps so far (diffuse, map, AO) so it's not such a hassle until this turns complex.
  • monster
    Options
    Offline / Send Message
    monster polycounter
    snoop wrote: »
    you should use Maya or xNormal to bake normals. 3dsmax rather unfortunately gave the most sub-par results.

    You could also render out a world space normal map in 3ds Max and use Handplane to convert it to your target game engine. (assuming the tanget space calculator in 3ds max is your only issue)
Sign In or Register to comment.