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

Re: [Public WebGL] ETC texture compression.

On Tue, Aug 24, 2010 at 10:33 AM, Cedric Vivier <cedricv@neonux.com> wrote:
On Wed, Aug 25, 2010 at 01:13, Chris Marrin <cmarrin@apple.com> wrote:
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.

Not if we limit ourselves just to provide access to low-level ES 2.0's compressedTex* functions.
I still do not understand the fears of incompatibilities it generates as using it is essentially exactly the same mechanism than for using any extension

The environment is not the same. When you take an Windows app and port it to OSX there's a ton of work that needs to be done. If you then port app to iPhone you also have a ton of work. You have to use ObjectiveC, you have to call different OS functions.

None of that is true on the Web. When you create an page it's supposed to run everywhere. That's mostly true with very few exceptions which is why cellphones can browse the web.  There is no "porting".  Sure pages often have to check for a few incompatibilities in browsers but those are arguably failures of the browser makers to agree rather than by design such as with OpenGL extensions.

(ie. may not be available so developer has to be careful about it - ie. getExtension("SOME_FORMAT") doesn't give the format enum).

Providing access to compressedTex* functions makes compressed formats completely transparent to the WebGL implementations, developers just provide the functions with an UnsignedByteArray obtained elsewhere (eg. XMLHTTPRequest), therefore not requiring unencumbered decompressors and the likes.

Libraries and/or web services can provide high level wrappers for easy developer usage and interop guarantees.

Last but not least, there's no technical advantage in space or time at all at using ETC1 (or any decompression-optimized GPU-supported format) over the wire when it needs to be decompressed in software because hardware does not support it.