Here's a tiny demo (our first), using the Basis transcoder compiled to Javascript using Emscripten: http://lzham.info/decode_test.html
For some encoded example images created during development, see this, this, or this post.
You encode your textures/images a single time, store a single set of .basis files (which are approximately the size of JPEG files), download the file on the remote device, and then transcode to the format you need for that device. Our transcoder converts the block-level data to DXT or ETC format GPU texture bits on the fly. The encoder is aware of all the formats and balances the quality levels of each.
.basis files consist of one or more 2D texture "slices", where each slice can be any dimension. Slices can be mipmap levels, tiles, cubemap faces, video frames, etc. - whatever you want.
We think the primary use case for .basis files are web apps of various types, or any kind of app that needs to distribute GPU texture data across a wide range of GPU devices. We've tested this solution on normal maps, diffuse maps, gloss maps, satellite photos, photographs, grayscale images, flight navigation maps, etc.
- bin, bin_linux, bin_osx: DLL/so/dylib's containing the precompiled encoder library (which is closed source) and several command line tools. The main tools are basiscomp (our new .basis file encoder, and our RDO ETC1 compressor) and rdodxt (uses our new RDO BC1-5 encoders that are around 10-25% better than crunch's).
- basisexample: Shows how to use the encoder DLL to encode .basis or RDO .KTX files.
- inc: Transcoder library source code/headers.
- lib: static import library for encoder DLL
- transcoding_demo: Sample that uses the included transcoder library (provided in source code form in the
- rdodxt: Sample that uses the encoder DLL to do RDO BC1-5 compression
No comments:
Post a Comment