在UWP应用程序中加载并显示DDS(DXT1)文件



我想加载几个directdraw表面文件,特别是DXT1,并在我非常简单的UWP(主要是C#)应用程序中显示它们。

我读过DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在UWP应用程序中使用它。

在Windows 8.1和Windows 10中,Windows Imaging Component有一个内置的编解码器,用于加载使用BC1/DXT1压缩的DDS文件。从C#UWP使用WIC的最简单方法是使用Win2D。请记住,WIC将返回图像的未压缩版本,如果这是你想要的,那么你就可以去了。

请注意,内置DDS编解码器仅支持DXT1-DXT5/BC1-BC3 2D图像文件。它不会加载其他形式的DDS文件。一种快速检查的方法是在文件资源管理器中查看。如果DDS显示为缩略图,则表示支持。

从您的问题中还不清楚您将如何处理加载的数据。如果你想从C#中使用Direct3D,那么你应该看看像SharpDX或SlimDX这样的东西。如果您使用的是Direct2D,Win2D是最好的选择。

有关何时使用DirectXTex与DDSTextureLoader加载DDS文件,请参阅此博客文章。简而言之:DirectXTex适用于需要处理所有各种格式转换的工具,特别是传统DDS文件格式;DirectX工具包中的DDSTextureLoader适用于"运行时",您可以确保加载的DDS文件已采用支持的DXGI格式。

Win2D可以直接从BC压缩像素格式加载和绘制:http://microsoft.github.io/Win2D/html/BlockCompression.htm

最新更新