我想加载几个特别是 DXT1 的 directdraw 表面文件,并将它们显示在我非常简单的 UWP(主要是 C#)应用程序中。
我读过 DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在 UWP 应用程序中使用它。
我想加载几个特别是 DXT1 的 directdraw 表面文件,并将它们显示在我非常简单的 UWP(主要是 C#)应用程序中。
我读过 DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在 UWP 应用程序中使用它。
在 Windows 8.1 和 Windows 10 中,Windows 映像组件具有用于加载使用 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旨在用于“运行时”使用,您可以在其中确保加载已采用受支持的 DXGI 格式的 DDS 文件。
Win2D 可以直接从 BC 压缩像素格式加载和绘制: http ://microsoft.github.io/Win2D/html/BlockCompression.htm