3

我正在处理需要使用 DXT/S3TC 格式(特别是 DXT5)压缩的多个图像。

有谁知道提供实时压缩的 DXT 压缩实现(最好在 C# 中,或使用 .Net 框架)?我的应用程序将一次压缩 10-20 个 512x512 图像,所以我想要一个相对快速的实现,如果有的话。我搜索了又搜索,但似乎找不到一个,并且由于某种原因,我无法充分了解 DXT5 格式来编写自己的实现。

我知道 XNA 框架支持 DXT 压缩。有人会碰巧知道它是否相当快吗?人们是否需要安装 XNA 才能使用我的应用程序?

谢谢你的帮助。:)

4

3 回答 3

1

我不了解 C#,但在 C++ NVIDIA 纹理工具中有一些实现:快速的和最佳的(搜索compressDXT5A)。我相信那里的实现被分解为颜色通道的“DXT1”步骤和 Alpha 通道的“DXT5A”步骤。

需要安装 XNA 才能使用 XNA 框架,是的。如果您可以保证 DirectX 已安装,您也许可以使用SlimDX来获取 DirectX 的 DXT5 例程。

于 2012-03-24T06:30:36.687 回答
1

这有点晚了(听起来像是自我推销!)但我为 libsquish 制作了一个开源的 .NET 包装器,并在几天前发布了一个新版本。在这里得到它。

于 2012-08-07T10:53:46.580 回答
0

http://code.google.com/p/libsquish/上有很好的 C++ 实现,它可能更容易转换为 C#/.NET。您总是可以使用 Microsoft 的 Managed-C++ 编译它。

XNA 的压缩速度很快。我不知道吞吐率,但它只是 DirectX 图像压缩 API 的包装器。

于 2012-04-09T21:15:35.683 回答