Initial checkin of v1.04 - KTX file format support, basic ETC1 compression/decompression, Linux makefile with proper gcc options, lots of high-level improvements to get crnlib into a state where I can more easily add additional formats.

This commit is contained in:
richgel99@gmail.com
2012-11-25 08:41:25 +00:00
parent a8011e9d7f
commit f71b49be60
92 changed files with 20362 additions and 781 deletions
+28 -3
View File
@@ -1,4 +1,4 @@
crunch/crnlib v1.03 PRERELEASE - Advanced DXTn texture compression library
crunch/crnlib v1.04 - Advanced DXTn texture compression library
Copyright (C) 2010-2012 Rich Geldreich and Tenacious Software LLC
For bugs or support contact Rich Geldreich <richgel99@gmail.com>.
@@ -6,12 +6,21 @@ For bugs or support contact Rich Geldreich <richgel99@gmail.com>.
This software uses the ZLIB license, which is located in license.txt.
http://opensource.org/licenses/Zlib
Non-critical portions of this software make use of public domain code
originally written by Igor Pavlov (LZMA) and RYG (crn_ryg_dxt*).
Portions of this software make use of public domain code originally
written by Igor Pavlov (LZMA), RYG (crn_ryg_dxt*), and Sean Barrett (stb_image.c).
If you use this software in a product, an acknowledgment in the product
documentation would be highly appreciated but is not required.
New for v1.04 [11/24/12]: KTX file format, basic ETC1 support, DDS format fixes, simple makefile
------------------------------------------------
Lots of higher level changes to get crnlib into a state where I can carry it forward to
support other file and texture compression formats. No major codec-level changes.
I've regression tested the codec writing .CRN and RDO .DDS files at various bitrates.
Everything seems OK, but with all the changes I made to support KTX and other formats like ETC1
I'm still worried about bugs.
New for v1.03 [4/26/12]: crnlib more portable, Linux Port
------------------------------------------------
@@ -135,6 +144,18 @@ further lossless compression because they're already highly compressed.
.CRN files are a bit more difficult/risky to integrate into a project, but
the resulting compression ratio and quality is superior vs. clustered .DDS files.
.KTX
crnlib and crunch can read/write the .KTX file format in various pixel formats.
Rate distortion optimization (clustered DXTc compression) is not yet supported
when writing .KTX files.
The .KTX file format is just like .DDS, except it's a fairly well specified
standard created by the Khronos Group. Unfortunately, almost all of the tools I've
found that support .KTX are fairly (to very) buggy, or are limited to only a handful
of pixel formats, so there's no guarantee that the .KTX files written by crnlib can
be reliably read by other tools.
Building the Examples
---------------------
@@ -280,3 +301,7 @@ sucks verses DXT5 alpha blocks, so I don't see this as a bug deal.)
* The DXT5_CCXY format uses a simple YCoCg encoding that is workable but
hasn't been tuned for max. quality yet.
* Clustered (or rate distortion optimized) DXTc compression is only
supported when writing to .DDS, not .KTX. Also, only plain block by block
compression is supported when writing to ETC1, and .CRN does not support ETC1.