我正在处理需要使用DXT / S3TC格式(特别是DXT5)压缩的多个图像。
是否有人知道提供实时压缩的DXT压缩实现(最好是在C#中,或使用.Net框架)?我的应用程序将一次压缩10-20个512x512图像,所以我想要一个相对快速的实现,如果有的话。我进行了搜索和搜索,但似乎找不到一个,由于某种原因,我无法绕过DXT5格式来编写我自己的实现。
我知道XNA框架支持DXT压缩。有人会碰巧知道它是否相当快?人们是否需要安装XNA才能使用我的应用程序?
感谢您的帮助。 :)
答案 0 :(得分:1)
我不了解C#,但C ++ NVIDIA纹理工具中有一些实现:quick个和optimal个(搜索compressDXT5A
) 。我相信那里的实现被分解成了一个" DXT1"步骤为颜色通道和" DXT5A" alpha通道的步骤。
需要安装XNA才能使用XNA框架,是的。如果您可以保证安装了DirectX,您可以使用SlimDX来获取DX5的DirectX例程。
答案 1 :(得分:0)
在http://code.google.com/p/libsquish/有很好的C ++实现,可能更容易转换为C#/ .NET。您总是可以使用Microsoft的Managed-C ++编译它。
XNA的压缩很快。我不知道吞吐率,但它只是DirectX图像压缩API的包装。
答案 2 :(得分:0)
这有点晚了(可能听起来像是自我推销!)但我为libsquish制作了一个开源的.NET包装器,并在几天前发布了一个新版本。得到它here。