PVRTC Compressed textures

With retina graphics now the standard for iOS devices, it only makes sense to add support for PVRTC so we can use bigger textures with faster texture rendering performance, smaller texture memory footprint and small app sizes. Android fragmentation on texture compression be dammed!

My app is currently only 12 MB but uses 40+ mb in texture memory. Even if I pack the textures, it won’t make much difference because the images are unpacked at full size in memory. This puts a serious limitation on how good our apps look going forward.

E [import]uid: 88628 topic_id: 28710 reply_id: 328710[/import]

Don’t understand all of this - but totally agree with the gist of it, always wondered how my average looking game takes up so much texture memory.

So +1 here if this will help to alleviate the burden. [import]uid: 33275 topic_id: 28710 reply_id: 115775[/import]

I do not agree this is top priority,
First, correct me if I’m wrong but Retina devices also have larger graphic memory and bandwidth to accommodate for the denser screen.
I find it really hard to run out of texture memory on an iPad 3. For example I have a prototype app I’m playing with that takes up more than 90mb of memory and working great on iPad 2 or 3. Not saying I’m gonna release it in this state, it’s very wasteful… but still just a prototype.
If you’re using dynamic scaling and you have lower resolution resources for lesser devices I think you should be fine.

The devices that limit you are cheap android phones which are shipped with less graphic memory than needed because, well, because they are low cost :slight_smile:

I’ve read in several places that:

  1. PVRTC generates artifacts. You can read more in these links:
    http://forum.unity3d.com/threads/14559-PVRTC-Compression-artifacts
    http://stackoverflow.com/questions/1688884/pvrtc-format-compromises-image-quality

So I think generating super high resolution resources and reducing their quality via some kind of compression really doesn’t serve you good… I’d rather use lower res resources and know they work as intended…

  1. The support level for it varies with devices (especially in the android world). You can read more in this link:
    http://stackoverflow.com/questions/9148795/android-opengl-texture-compression

So bottom line, PVRTC is not a magic solution and I think the price paid is too high, therefore, I’m not voting for this feature, there are enough missing things in the API which are more important in my honest opinion…
PS, Two small tip you probably already read more than once:

  1. textures consume memory in powers of two. This means that a 513x513 image consumes the same memory as a 1024x1024 image. When you create your seperate images or spritesheet make sure you are not just a bit above a pow of 2 (512 in this case) because then you’re just wasting a lot of memory…
  2. In a lot of cases using smaller textures and scaling up on higher resolution devices has very little effect on the visuals.
    If you have something static that the user sees for a long period, sure make it extra sharp, but if you have an explosion spritesheet that plays several frames a second you’ll find it hard to see any different if you scale the resources down 0.5, and you’ll consume 0.25 the texture memory…
    [import]uid: 80469 topic_id: 28710 reply_id: 115834[/import]

Coming from the PC world, DDS (directx compressed textures) was a great tool to improve performance of rendering,loading and minimizing file size of textures, and it was a magic solution for games that used lots and lots of textures. That being said I’m not aware of PVRTC problems, but was assuming it had similar benefits. As I said the Android market is fragmented and it isn’t a good solution there, but there are those of us that want to release iOS only titles.

About image quality, it depends on how you use textures. Some would rather have a higher res image with artifacts than a low res one and vice versa, it’s subjective

I know not everyone is aware of the power of 2 texture issue, but it’s good to bring that up. I keep my textures as tight as possible to that format.

Anyways, it’s good to have this discussed, I’m hoping someone with PVRTC experience in here can shed more light on the issue. I still think it would be a great feature as all the iOS devices support it under 4.3 and up and we want our apps to look as good as possible and that means using lots of textures. Weather the current memory for textures is enough or not enough for most ppl is subjective.
[import]uid: 88628 topic_id: 28710 reply_id: 115840[/import]

I totally agree with you it’s really subjective, just wanted to shed some light on the negative aspects of it.
[import]uid: 80469 topic_id: 28710 reply_id: 115841[/import]