2012-03-24 93 views
2

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

有谁知道提供实时压缩的DXT压缩实现(最好在C#中,或使用.Net框架)吗?我的应用程序一次会压缩10-20个512x512图像,所以我希望能够相对快速地执行,如果有的话。我已经搜索和搜索,但似乎无法找到一个,由于某种原因,我无法将我的头围绕DXT5格式编写,足以编写我自己的实现。

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

感谢您的帮助。 :)

回答

1

我不知道C#,但在C++ NVIDIA纹理工具中有一些实现:一个quick one和一个optimal(搜索compressDXT5A)。我相信其中的实现分解为颜色通道的“DXT1”步骤和alpha通道的“DXT5A”步骤。

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

0

有很好的C++实现在http://code.google.com/p/libsquish/这可能更容易转换为C#/。NET。你可以使用微软的Managed-C++来编译它。

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

0

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

+1

如何将你的lib中的png转换为dds? – Aron 2013-12-18 03:33:42