Search Unity

How to force ETC2 instead of ETC1 in unity ?

Discussion in '2D' started by IndieMarc, Jun 9, 2020.

  1. IndieMarc

    IndieMarc

    Joined:
    Jan 16, 2017
    Posts:
    183
    Hi! I'm trying to figure out how to change a sprite compression from ETC1 to ETC2 when there is no transparency.
    The issue is that ETC1 won't be compressed unless its a POT texture.
    While ETC2 only needs to be divisible by 4.

    POT don't make any sense for UI and sprites. And uncompressed textures are also unacceptable as they boost memory and build size by x6+. I need a way to force sprites and UI such as backgrounds with no transparency to be compressed to ETC2 so that the POT restriction is removed.

    Right now the only turnaround I found is to open each individual picture in photoshop and change a random pixel in a corner to a transparent pixel so that Unity treat it as ETC2, but that's not the way it should be. I think there should be an option to force ETC2 in Unity or Unity should support ETC1 divisible by 4 instead of POT.

    I haven't found anything about it.
    Thank you so much for your help.
     
  2. IndieMarc

    IndieMarc

    Joined:
    Jan 16, 2017
    Posts:
    183
    Anyone on this? Is unity planning to fix this?

    When "Alpha is transparency" is checked, unity should try to convert to DXT5 / ETC2 by default. (Not DXT1 or ETC1, even if the image has no transparent pixel, because DXT1/ETC1 dont support non-POT)
    In the default section, under Format, there is no way to set RGBA compressed or RGBA crunched. I have to set it under each platform individually.

    Unity could fix this.
     

    Attached Files: