2012-03-24 82 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