Compressonator v4.5 现已发布!
本次发布包含的新功能概述如下,如果您想立即尝试,请访问 Compressonator 页面,其中包含所有下载和文档链接。
通过 Brotli-G 改进 BC1-BC5 压缩
新发布的 Brotli-G SDK v1.1 已集成到 Compressonator 中,并提供了“预处理”大多数 BCn 格式纹理以改进压缩的功能。使用 Compressonator CLI,用户可以获得比以前版本的 Compressonator 更高的压缩率,而无需任何手动配置。只需选择 Brotli-G 压缩,应用程序将自动检测输入纹理是否支持 Brotli-G SDK 的预处理,并在可能的情况下启用它。
通过运行新的 Brotli-G 压缩并使用一些示例纹理,与之前的 Compressonator 版本相比,BRLG 文件的大小平均减小了 10% - 15%,在某些情况下甚至减小了高达 20%。
此功能目前仅支持 BC1-BC5 格式纹理,目前正在努力将其扩展到 BC6 和 BC7 纹理。
此外,Compressonator CLI 中添加了三个新的命令行选项,用于控制预处理的各个方面。第一个也是最直接的选项是 NoPreconditionBRLG,它仅禁用 Brotli-G 压缩期间纹理的预处理。另外两个选项 DoSwizzleBRLG 和 DoDeltaEncodeBRLG,在预处理阶段启用额外的块交叉开关和颜色增量编码步骤,这可能会进一步提高压缩效果。有关所用技术的详细信息,请参阅 Brotli-G SDK 项目。
总的来说,启用 DoSwizzleBRLG 或 DoDeltaEncode 标志所能带来的改进,在很大程度上取决于输入纹理和输出格式。尽管如此,我们发现 DoDeltaEncodeBRLG 标志在 BC4 和 BC5 纹理上效果尤其好,与禁用该标志相比,压缩率可能提高约 5%。
新的 Brotli-G 打包功能
Compressonator CLI 中引入了一个新选项 PackageBRLG。启用此选项后,用户可以将目录及其子目录中的所有文件打包到一个输出的 ”.BRLG” 文件中。BRLG 文件格式的规范进行了一些小的更改以启用此新功能,但它仍然完全向后兼容以前的格式,因此 Compressonator CLI 在读取或写入旧版本的 BRLG 文件时不会遇到任何问题。
要使用新功能,用户需要指定 Brotli-G 压缩并将一个文件夹作为输入传递给命令行工具。命令应如下所示:
compressonatorcli.exe -PackageBRLG -fd BRLG example_folder/ output_package.brlg这将获取 *example_folder*(及其所有子文件夹)中的每个文件,并将它们一起压缩成一个名为 *output_package.brlg* 的文件。生成的 BRLG 文件可以像任何其他 BRLG 文件一样解压缩。区别在于解压缩操作会将每个文件解包并输出到目标路径,并在原始打包时保留原始子目录结构。
因此,解压缩的命令应如下所示:
compressonatorcli.exe output_package.brlg result_folder/需要注意的是,如前所述,目录结构在打包和解包过程中得以保留。这意味着如果输入文件夹包含如下文件:
example_folder test.txt subfolder test.txt texture.dds那么解压缩的输出将如下所示:
result_folder test.txt subfolder test.txt texture.ddsMipmap 生成更改
Compressonator CLI 处理带有现有 mipmap 级别的输入纹理的方式已得到改进。-nomipmap 选项已更新,现在始终生成不带附加 mipmap 级别的输出,而 -miplevels 选项将正确控制输出文件中存在的 mipmap 级别的最大数量,而与输入文件中包含的 mipmap 级别数量无关。
ETC 编解码器修复
ETC 编解码器与其他编解码器相比存在的不一致行为已得到修复。以前,ETC 编解码器错误地交换了输出中的红色和蓝色通道,此版本已解决了该问题。
其他质量改进
- 修复了一些内存泄漏。
- 更新了文档,以更好地解释 CMP Core 的 SetSrgbBCn 函数的用途。
- 添加了新的 Compressonator Framework 代码示例,演示如何压缩外部纹理数据。
- 修复了 DDS 文件保存问题,避免 DDSD_MIPMAPCOUNT 标志始终被设置。
- 清理了重复的 CalcBufferSize 函数,并为该函数添加了缺失的格式。
其他构建改进
- 修复了 Linux 构建脚本中的一些路径问题。
- 修改了 CMake 文件,以便可以开启或关闭 KTX 支持。
- 移除了对 OpenCV 的依赖,该依赖在仅构建 SDK 时仍然存在。
- 修复了 MacOS 上与 __local 宏定义相关的构建错误。
- 为 SDK 二进制构建添加了缺失的函数定义。
- Windows 构建脚本已添加对 Visual Studio Community 的支持。
立即下载 Compressonator v4.5
最新的 Compressonator 版本可在 GitHub 上下载。
另外,请查看 Compressonator 文档以开始使用。