[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.


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: