[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] ETC texture compression.



On Aug 24, 2010, at 9:52 AM, Steve Baker wrote:

> Texture compression is now rising to the top of my list of priorities...
> 
> I just got an email from Jacob Ström (at Ericsson) giving further
> details of the ETC compression scheme - and a link to some useful papers
> on the subject.   For anyone who is interested, I've added them as links
> to the Wikipedia article on ETC compression:
> 
>     http://en.wikipedia.org/wiki/Ericsson_Texture_Compression
> 
> Anyway - a couple of highlights from Jacob's email that pretty much
> confirm my intuition:
> 
> 1) Jacob agrees that ETC1 isn't useful for compressing normal maps.
> 2) ETC1 can't compress RGBA maps, for that you need ETC2 - which isn't
> finalized yet.
> 3) They believe that ETC1 quality is slightly better than S3TC (aka
> DXT1) - but the artifacts are of a different nature and some test images
> don't show an improvement. (Since the compression rates for ETC1 (6x)
> are not as great as DXT1 (8x), that's about what you'd expect).
> 
> Anyway, on to my question...some graphics hardware (like my ancient 6800
> card and my relatively new GeForce 285) don't support the OpenGL ETC1
> extension.  Both of those nVidia cards have GL_ARB_texture_compression,
> GL_EXT_texture_compression_s3tc and GL_NV_texture_compression_vtc - and
> the 285 card has 'latc' and 'rgtc'...but neither support
> GL_OES_compressed_ETC1_RGB8_texture - which is the ETC1 extension.  I
> presume cellphones are much more likely to provide this support - but
> evidently, it's far from universal.
> 
> So how will WebGL handle this on the desktop in practice?

This is where the licensing for the software ETC1 decompressor becomes an issue. If such a thing were unencumbered a WebGL implementation could use it to decompress ETC1 textures on systems without direct support and send the texture to the hardware uncompressed. An implementation could also recompress the image into a format supported by the hardware, but this might not be desirable because it would produce unexpected artifacts.

The bottom line is that a WebGL implementation supporting ETC1 would have to accept these textures as input, what it does with them is implementation specific. But for universal support an unencumbered ETC1 decompressor is needed.

-----
~Chris
cmarrin@apple.com





-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email: