Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Banding issue

Discussion in 'Android' started by leftchannel, Sep 25, 2014.

  1. leftchannel

    leftchannel

    Joined:
    Feb 28, 2014
    Posts:
    25
    We have an issue when our game is built for Android with color banding. See the attached screenshots. This appears to happen to all 'Compressed' images - banding on Android, looks fine on iPad.

    We're in the process of finding more Android users to test it on different devices. We have confirmed that many graphics throughout the game suffer from this issue. Notably, the UI graphics (even when there are gradients) look crisp and clean. So this is probably an issue with the way Android decompresses the graphics? Any known way around it?

    The import settings for the image are the same between Android and iOS.
     

    Attached Files:

    Last edited: Sep 25, 2014
  2. mbowen89

    mbowen89

    Joined:
    Jan 21, 2013
    Posts:
    639
    Well, I'm guessing you are seeing the difference between ETC compression (Android) and PVRTC compression (iOS)?
     
  3. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Probably, you should set it to 32 bit in player settings.
     
  4. leftchannel

    leftchannel

    Joined:
    Feb 28, 2014
    Posts:
    25
    We have a lot of large images and it's for mobile devices. We simply don't have the memory for 32-bit.

    Are we just going to have to deal with it? Are there any compression options that work on Android that don't produce this effect?
     
  5. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    The player setting does not relate to image bit depth. It's the depth of the display buffer and really isn't there for ram reasons but for performance reasons. Using 32 bit buffer for drawing on doesn't necessarily mean your images will magically become 32 bit as well in ram. It means any blending or lighting you do will be smoother.

    In any case, if your problem is one of compressed textures, then no, you're stuck with 16 bit or compressed.
     
  6. leftchannel

    leftchannel

    Joined:
    Feb 28, 2014
    Posts:
    25
    Oh, I thought you meant change the image's import settings to 32-bit. The Display and Depth buffers in Player Settings both have 32- and 24-bit checked already, respectively.
     
  7. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    When you use 16 bit depth in unity, you need to convert them to 16 bit beforehand so you're able to take advantage of dithering, as Unity converts to 16 bit pretty much by dropping bits, it doesn't perform any dithering. Am I right in assuming you're using 16 bit on android but uncompressed or compressed on iOS? you should opt for compressed, not 16 bit on android, if you want to avoid banding.

    From the looks of it it may be that you're able to get away with a lower texture resolution, but a sharper mip map, or even disabled mipmaps. Typically mipmapping will generally be showing the texture at half resolution unless quite close.
     
  8. leftchannel

    leftchannel

    Joined:
    Feb 28, 2014
    Posts:
    25
    The textures where this issue is appearing are all Compressed on both platforms. The UI elements are 32-bit on both platforms.