我正在处理需要使用DXT/S3TC格式(特别是DXT5)压缩的多个图像。
有没有人知道提供实时压缩的DXT压缩实现(最好是在C#中,或者使用.Net框架)?我的应用程序将一次压缩10-20个512x512个图像,所以我希望有一个相对较快的实现。我已经找了又找,但似乎找不到,而且由于某些原因,我不能充分理解DXT5格式以编写我自己的实现。
我知道XNA框架支持DXT压缩。有没有人碰巧知道它是否相当快?人们需要安装XNA才能使用我的应用程序吗?
谢谢你的帮助。:)
发布于 2012-03-24 14:30:37
我不知道C#,但在C++ NVIDIA纹理工具中有几个实现:quick实现和optimal实现(搜索compressDXT5A)。我相信这里的实现被分解为颜色通道的"DXT1“步骤和alpha通道的"DXT5A”步骤。
是的,需要安装XNA才能使用XNA框架。如果您可以保证DirectX已安装,则可以使用SlimDX获取DXT5的DirectX例程。
发布于 2012-08-07 18:53:47
这来得有点晚(听起来可能像是自我推销!)但是我为libsquish做了一个开源的.NET包装器,并在几天前发布了一个新版本。获取它,here。
发布于 2012-04-10 05:15:36
在http://code.google.com/p/libsquish/上有一个很好的C++实现,它可能更容易转换成C#/.NET,你可以使用微软的托管C++来编译它。
XNA的压缩速度很快。我不知道吞吐率,但它只是DirectX图像压缩应用编程接口的一个包装器。
https://stackoverflow.com/questions/9849616
复制相似问题