Files
unity/SupportedFormats.md
2015-05-20 23:57:30 -04:00

41 lines
2.3 KiB
Markdown

# Supported File Formats #
crnlib supports two compressed texture file formats. The first
format (clustered [.DDS](http://en.wikipedia.org/wiki/DirectDraw_Surface)) is simple to integrate into an existing project
(no code changes are typically required), but it doesn't offer the
highest quality/compression ratio that crnlib is capable of. Integrating
the second, higher quality custom format (.CRN) requires a few
typically straightforward engine modifications to integrate the
.CRN->DXTn transcoder header file library into your tools/engine.
## .DDS ##
crnlib can compress textures to standard DX9-style [.DDS](http://en.wikipedia.org/wiki/DirectDraw_Surface) files using
clustered DXTn compression, which is a subset of the approach used to
create .CRN files. (For completeness, crnlib also supports vanilla, block by block DXTn compression too, but that's not very interesting.)
Clustered DXTn compressed .DDS files are much more compressible than
files created by other libraries/tools. Apart from increased
compressibility, the .DDS files generated by this process are completely
standard so they should be fairly easy to add to a project with little
to no code changes.
To actually benefit from clustered DXTn .DDS files, your engine needs to
further losslessly compress the .DDS data generated by crnlib using a
lossless codec such as zlib, lzo, LZMA, LZHAM, etc. Most likely, your
engine does this already. (If not, you definitely should because DXTn
compressed textures generally contain a large amount of highly redundant
data.)
Clustered .DDS files are intended to be the simplest/fastest way to
integrate crnlib's tech into a project.
## .CRN ##
The second, better, option is to compress your textures to .CRN files
using crnlib. To read the resulting .CRN data, you must add the .CRN
transcoder library (located in the included single file, stand-alone
header file library inc/crn\_decomp.h) into your application. .CRN files
provide noticeably higher quality at the same effective bitrate compared
to clustered DXTn compressed .DDS files. Also, .CRN files don't require
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.