我想加载几个directdraw表面文件,特别是DXT1,并在我非常简单的UWP(主要是C#)应用程序中显示它们。
我已阅读过DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在UWP应用程序中使用它。
答案 0 :(得分:1)
在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文件,请参阅this blog post。简而言之:DirectXTex适用于需要处理所有各种格式转换的工具,特别是传统的DDS文件格式; DirectX Tool Kit中的DDSTextureLoader适用于'运行时'用于确保您正在加载已支持DXGI格式的DDS文件的地方。
答案 1 :(得分:1)
Win2D可以直接从BC压缩像素格式加载和绘制:http://microsoft.github.io/Win2D/html/BlockCompression.htm