I’m trying to use that extension lo use compressed textures on Android platform, but I’m unable of finding its specification neither any example of the file format that this extension provides.
I really would appreciate if somebody could point me to the spec or to a fragment of code that loads that formats, as well as a tool to convert standard textures into compressed ones, compatibles with that extension.
So, closed format. “Use our tools. If you don’t like 'em, that’s just tough.” However, appears that NVidia texture tools may have support, with some “ATITC” library present (with header atitc/ATI_Compress.h, type ATI_TC_Texture, and API ATI_TC_ConvertTexture):
Appears this header is in some ATI SDK which a few years back looked like this
With access to a supporting device, shouldn’t be too hard to crack the encoding. Let me know if you find a link of someone that has. NVidia probably did long ago.
…however, I gather there’s a patent involved here, which is probably why nobody’s talking and few have even heard of this format:
ATC is AMD’s new texture compression algorithm for embedded systems. Technical detail is unknown, though it probably is based on the patent [17] registered by the person that wrote ATC’s OpenGL ES extension specification [2] (which states ”The details of these formats is not disclosed”).
…
[17] Aaftab Munshi. Block-based image compression method and apparatus. US Patent 20060215914.
I’ve searched for information about that extension in these forums, in Khronos GL|ES forums, in ATI forums, and of course, googled it for a prudent period of time. The only thing I’ve found is another extension (in fact it is GL_AMD_compressed_ATC_texture), which looks like if it were GL_ATI_texture_compression_atitc (the one I’m looking for, so, an extension with two names, and the obsolete one given by the Android GL extension string??), and the ATI compressionator, like Dark Photon says.
Well, those kind of things remembers me why some years ago dropped ATI and choosed NV as gsx, but now I’m forced againt to use ATI chipsets, because the HTC’s
I must use compressed textures (as any other that wants program anything in OpenGL and embedded devices) so I’m forced to solve this issue, so when I figure out the whole process (compression, load and upload to gfx those textures) I’ll write the process in this thread. Perhaps could seerve to anybody, because I was unable to found anything about using compressed textures in Android in the hwole net.
It’s not ATi chipsets, just Qualcomm’s funky gpu. In my experience it can fetch texels extremely quickly, while its triangle setup is really slow. It made no performance difference if we’d feed it 1024x1024 32bpp or 128x128 16bpp. (I helped optimize Mystique:Chapter1 to run at 60fps) . Thus we chose to simply decode JPG/PNG into 24bpp and 32bpp. There’s whole 192MB RAM, after all . And besides, after G1 it’s guaranteed the other phones won’t support said extensions (or even have 3D acceleration T_T )
So you’ll anyway have to support stinking uncompressed textures. Just for reference, here are the extensions:
Follow the source, given by Dark Photon; the code should be identical to loading DXT1, imho. Even random data should be loadable and displayable - so first figure-out if the G1/G2 can really load said compressed format by manually specifying the 0x8C92 as internal-format.
You are right, I’ve complained too fast. Well, at least now I’m sure that both extensions are the same (first one was never released, but renamed as the second)
For the current time, I only need to convert standard textures and load them, and I’ve found that I can do that with the ATI compressonator (and there, I found how to load them)
I downloaded the ‘compressonator’ and used the ATC_RGB_AMD 0x8C92
ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
compressions as generated by the compressonator.
then loaded the textures as both internal and external compressed using the values above.
but no luck.
anyone know if any examples exist?
tested on:
android 2.0 opengl 1.5 nexus one
the image showed a 3x compression over the raw data.
which would help me greatly.