Home Technical Talk

xNormal vs. Max bakes

polycounter lvl 9
Offline / Send Message
Kroma! polycounter lvl 9
Hey people, I've got some questions about xNormal normal bakes vs. Max (3.18.9 vs. 2013 PU6).

This may be an extreme example and some of these problems are likely to be invisible in game but I'd like to hear your thoughts regardless.

Comparison.png

Note:
  • All maps were baked uncompressed with no supersampling or antialiasing at 2048x2048 and downsized to 1024x1024 in Photoshop with Bicubic resampling, and normalised with xNormal's filter.
  • All bakes used the same high and low poly mesh and the cage was exported from Max to be used in xNormal too (xNormal's own cage wasn't looking so good).
  • xNormal bakes used the default bucket renderer as the CUDA ones looked bad.
  • Viewing the TIFF as a PSD in TB2 looked great, no real banding.

1. High poly (ignore the front face weirdness)
2. TGA baked in Max (default scanline)
3. TGA baked in xNormal
4. 16 bit TIFF in xNormal - converted to 8 bit, downsized, normalised, saved as TGA
5. 16 bit TIFF in xNormal - downsized, converted to 8 bit, normalised, saved as TGA
6. 16 bit TIFF in xNormal - downsized, normalised, converted to 8 bit, saved as TGA


My thoughts:

1. High poly looks smooth, apart from the front face but this does not show in Max and appears to have no effect on the bakes.
2. I hear Max bakes have a bit of noise in them to reduce banding and this is clear here. The bake has uniform noise on the curved faces and no banding. To me, the best looking 8 bits/channel bake of the bunch.
3. Has clear banding on the cylindrical parts, would like to avoid this result. Baking 16 bit TIFF improves this.
4 & 5. Look very similar. Converting to 8 bit introduces noise on curved areas but in the same bands that appear in 3. Second best results after Max.
6. More uniform noise but stronger than Max. Also considerable noise on flat faces, although banding has been reduced. Third best result, due to to the strong noise.


Admittedly I have just started using xNormal but I feel like my best bake came out of Max anyway, and without having to bake and convert different formats.

So I guess my questions are:
  • What do you make of all this? Do you have any fixes?
  • When do you convert your 16 bit maps to 8 bit, before or after any editing?
  • xNormal vs. Max for normal map bakes? How do game engines handle them?
  • Anything else I probably should know about?

If you want to have a closer look you can get the scene and files here: https://dl.dropboxusercontent.com/u/45171669/Polycount/XLR/XLR.zip

Thanks :)

Replies

  • deohboeh
    Options
    Offline / Send Message
    deohboeh polycounter lvl 5
    Are you viewing the maps in Toolbag with the respective tangent basis? Have you tried converting object space maps to tangent maps..
    I bake object space maps and then bake out the tangent space maps with handplane3d. I havent found any aberrations with it.
  • Kroma!
    Options
    Offline / Send Message
    Kroma! polycounter lvl 9
    deohboeh wrote: »
    Are you viewing the maps in Toolbag with the respective tangent basis? Have you tried converting object space maps to tangent maps..
    I bake object space maps and then bake out the tangent space maps with handplane3d. I havent found any aberrations with it.
    Yeah all the tangent bases are correctly set up. I have not tried the handplane method as I'm more curious about my 16 bit -> 8 bit artifacts. But this could be added to the comparison later.
  • Seijiro
    Options
    Offline / Send Message
    Seijiro null
    In my experience you choose whichever application you can for that particular situation. I've had situations where xNormal clearly produced a better normal map than in Maya (I'm a Maya person) and also faster. While in my recent project xNormal do not produce the same quality normal maps as Maya.
    I believe it all depends on the model and/or cage.
    I usually try both of these options and fiddle around with the settings until a winner comes fourth.
  • deohboeh
    Options
    Offline / Send Message
    deohboeh polycounter lvl 5
    I would suggest if you need 8 bit bake it 8 bit. AFAIK conversion almost always causes artefacts.
    Is there any reason you are looking to reduce artefacts from 16 to 8 or just because?
  • Kroma!
    Options
    Offline / Send Message
    Kroma! polycounter lvl 9
    Seijiro wrote: »
    In my experience you choose whichever application you can for that particular situation. I've had situations where xNormal clearly produced a better normal map than in Maya (I'm a Maya person) and also faster. While in my recent project xNormal do not produce the same quality normal maps as Maya.
    I believe it all depends on the model and/or cage.
    I usually try both of these options and fiddle around with the settings until a winner comes fourth.
    I see, well maybe this is an experience thing, I just need to make more assets and eventually find the best workflow for my own situations.
    deohboeh wrote: »
    I would suggest if you need 8 bit bake it 8 bit. AFAIK conversion almost always causes artefacts.
    Is there any reason you are looking to reduce artefacts from 16 to 8 or just because?
    Well the Max bake looks the best to me, but I'm not sure of how many engines support its tangent basis; the viewport and the baker aren't even synced. I will get around to testing this in UE4 when I get it.

    I tried xNormal because it's built for baking and I know it's used quite a lot on here. But the 8 bit/channel TGA had clear banding, which was avoided by baking a 16 bit TIFF as suggested by others to people who had banding issues. But then I don't think engines like TIFFs or PSDs for the final texture, so I used TGA which is only 8 bits/channel. Then the noise problems arose.

    So I'm confused about whether or not to use Max bakes and if there is a better way to handle 16->8 bit conversion.

    Thanks for your responses :)
  • TomDelboo
    Options
    Offline / Send Message
    TomDelboo polycounter lvl 6
    I actualy like number 3 better than 2.
    I use xnormal, because I find it easier to set up and alot faster.
  • Noors
    Options
    Offline / Send Message
    Noors greentooth
    Photoshop adds a noise when converting from 16 or 32 to 8. You might have a cleaner result by saving directly the 16 bits to a 8 bits formats (png24 from memory) then adjust the noise if needed. Noise is the only way to counter banding on a 8 bit file anyway. I'm not sure if that would be different from baking directly in 8 bits.
  • EarthQuake
    Options
    Offline / Send Message
    Seijiro wrote: »
    In my experience you choose whichever application you can for that particular situation. I've had situations where xNormal clearly produced a better normal map than in Maya (I'm a Maya person) and also faster. While in my recent project xNormal do not produce the same quality normal maps as Maya.
    I believe it all depends on the model and/or cage.
    I usually try both of these options and fiddle around with the settings until a winner comes fourth.

    Unless you can provide some scientific results as the OP has, what you're saying here doesn't really mean much. If you're comparing different assets in different apps, you can't draw any conclusions. "Better" is totally subjective at this point and could be from a variety of different things including user error and/or simply differences in content.

    In many situations you will not have a choice where to make, if your engine is synced to Maya, you should use Xnormal to bake. So I think its more important to know how to get consistently high quality bakes no matter where you bake than it is to figure out which is "best".
    Noors wrote: »
    Photoshop adds a noise when converting from 16 or 32 to 8. You might have a cleaner result by saving directly the 16 bits to a 8 bits formats (png24 from memory) then adjust the noise if needed. Noise is the only way to counter banding on a 8 bit file anyway. I'm not sure if that would be different from baking directly in 8 bits.

    16bit would be ideal but most game engines do not support 16 bit formats, so you have to downconvert to 8bit at some point or another.

    To me, 4&5 look about as good as max, certainly when you put a real texture on them you won't see a difference. The problem with 6 is that you're normalizing before down converting to 8 bit, normalization should always be the last step.
  • Kroma!
    Options
    Offline / Send Message
    Kroma! polycounter lvl 9
    Hey guys, sorry for the late reply, many thanks for your inputs.

    I tried various combinations of 8 and 16 bit .tga and .tif object space maps from xNormal converted to .tga and .tif using Handplane, but the results were very similar to what I already had. So I'm not sure this is going to be part of my current workflow.

    I now have UE4 though so I quickly threw in the Max bake and bake 4 (16 bit TIFF in xNormal - converted to 8 bit, downsized, normalised, saved as TGA).

    Flicking between the images you can see the differences more clearly.

    Max:
    UE4_Max.png

    xNormal:
    UE4_xNormal.png
    EarthQuake wrote: »
    To me, 4&5 look about as good as max, certainly when you put a real texture on them you won't see a difference. The problem with 6 is that you're normalizing before down converting to 8 bit, normalization should always be the last step.

    Thanks for clearing that up. I think with these results, Max looks better in UE4 so I'll continue to use that.
Sign In or Register to comment.