【发布时间】:2016-08-30 06:02:46
【问题描述】:
我想加载几个专门为 DXT1 的 directdraw 表面文件,并将它们显示在我非常简单的 UWP(主要是 C#)应用程序中。
我已经阅读过 DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在 UWP 应用程序中使用它。
【问题讨论】:
标签: c# c++ xaml win-universal-app dds-format
我想加载几个专门为 DXT1 的 directdraw 表面文件,并将它们显示在我非常简单的 UWP(主要是 C#)应用程序中。
我已经阅读过 DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在 UWP 应用程序中使用它。
【问题讨论】:
标签: c# c++ xaml win-universal-app dds-format
在 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 用于“运行时”使用,您可以确保加载的 DDS 文件已经采用受支持的 DXGI 格式。
【讨论】:
Win2D 可以直接从 BC 压缩像素格式加载和绘制:http://microsoft.github.io/Win2D/html/BlockCompression.htm
【讨论】: