Home Technical Talk

Normal map banding with specific lossless formats

polycounter lvl 5
Offline / Send Message
ArasTM polycounter lvl 5
Hey again, 
first of this is not an 8 bit normal map issue. Instead this is a very weird thing which I keep on running into when using PNG or PSD formats to save a normal map. 
When I use TIFF format the banding is eliminated, even if I resave the PNG or PSD files as TIFF. 
What could cause these issues? They're persistent in Unreal Engine 4 and Marmoset Toolbag 3.

What could cause such issues? And since UE4 does not support TIFF format is there any good alternative besides PSD or PNG? Thanks!!!


Replies

  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Not sure what issue is, save settings or whatnot. Personally I always use targa in UE4.
  • Avis Para.doc's
    Options
    Offline / Send Message
    Avis Para.doc's polycounter lvl 9
    You need to check that thread. Its obviously a bit-depth issue
  • ArasTM
    Options
    Offline / Send Message
    ArasTM polycounter lvl 5
    @Avis Para.doc's  it's not a bit depth issue. As @perna mentioned when I resave the same PNG file as TIFF it works fine and there are no artefacts. 
    I'm just wondering what could cause these issues, of course making a diffuse would hide such small artefacts but in any case it's still a small problem.

  • ArasTM
    Options
    Offline / Send Message
    ArasTM polycounter lvl 5
    @musashidan TGA can only be consisted of 8 bit components, you won't be able to have 16 bit normal maps with it.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Yes, but I bake Normal maps in 16bit tiff and convert to .tga for UE. Pretty standard practice.
  • ArasTM
    Options
    Offline / Send Message
    ArasTM polycounter lvl 5
    Yes and for a lot of stuff it should very nice I believe but if you want some great smooth reflections, etc that's just not an option.
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Keep in mind the Unreal will be converting all the normalmaps to a DXT format (usually DXTn) when you import it. What are the compression settings you are using in Unreal?
  • ArasTM
    Options
    Offline / Send Message
    ArasTM polycounter lvl 5
    @sprunghunt hi, I was using the default normal map compression settings (DXT5). Hmm are you saying that this is where the artefacts get introduced? I have tried some different compression settings but they didn't give a better result. Wondering what if you'd want to have really good normal maps and smooth reflections, could you skip the compression entirely? 
  • ZacD
    Options
    Online / Send Message
    ZacD ngon master
    UE4 should use BC5 compression for normal maps. Compression happens for performance reasons, it's not something you want to skip if you are wanting to create assets for games. Marmoset does not use any compression (or at least any noticeable compression).  

    16bit PNG support is bad and varies between applications. Don't use it. I avoid PNG pretty much all together for game art uses because of the horrible alpha support and 16bit support. I believe that is the core part of your problems and why you are seeing inconsistencies. 

    You can controlling the shading/normals on your low poly model to produce less harsh smoothing, which will create less harsh gradients on the normal map, which will compress better. 
  • ArasTM
    Options
    Offline / Send Message
    ArasTM polycounter lvl 5
    @ZacD Thanks for your response and you're very right about PNG support, but that's not what I'm asking. Also I  understand that compression is crucial for good performance. 
    Anyways my question is what if you'd like to have that oomph in your reflections, smooth mirror like surface in the scene. What if you do want a 16bit normal map, what format would you use? TIFF seemed like a nice option for me until I found out that UE4 doesn't support it :( 
  • ZacD
    Options
    Online / Send Message
    ZacD ngon master
    UE4 will compress down to a 8 bits with BC5 or DXT. It is better to bake at 16 bit and make sure there's dithering instead of stepping when it is converted to 8 bits.

    If you want perfect glossy reflections, controlling the shading and using plenty of geometry will help. Epic added some extra normal precision settings for getting better reflections on cars, but none of them are directly normal map related.
  • ArasTM
    Options
    Offline / Send Message
    ArasTM polycounter lvl 5
    @ZacD I really thought that UE4 supports 16bit normals, damn. Thanks for your help! 
  • VascoRodrigues
    Options
    Offline / Send Message
    VascoRodrigues polycounter lvl 5

    @ArasTM Hey! I'm am only 5 years late to the party :) It seems if you want to use a 16 bit normal, your best option (though it will be compressed still) is in the texture settings, importing the normal map as an HDR texture. Be aware this is VERY performance heavy, but if you still want to brute force your way through a normal map, this will be the way.

    I recommend just creating a good topology mesh with the details you want and setting it as a different material inside UE4 and using weighted normals :) Hope this is helpful for anyone dropping by.

Sign In or Register to comment.