41 lines
2.3 KiB
Markdown
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. |