【问题标题】:Load and display DDS (DXT1) file in UWP app在 UWP 应用中加载和显示 DDS (DXT1) 文件
【发布时间】:2016-08-30 06:02:46
【问题描述】:

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

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

【问题讨论】:

    标签: c# c++ xaml win-universal-app dds-format


    【解决方案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,那么你应该查看类似 SharpDXSlimDX 的内容。如果您使用的是 Direct2D,Win2D 是最好的选择。

    关于何时使用 DirectXTex 与 DDSTextureLoader 加载 DDS 文件,请参阅 this blog post。简而言之:DirectXTex 适用于需要处理所有各种格式转换的工具,尤其是传统 DDS 文件格式; DirectX Tool Kit 中的 DDSTextureLoader 用于“运行时”使用,您可以确保加载的 DDS 文件已经采用受支持的 DXGI 格式。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-12-15
        • 2018-09-04
        • 2014-06-30
        • 1970-01-01
        • 2021-05-27
        • 2016-09-20
        • 2020-12-07
        • 2016-06-17
        • 2010-10-26
        相关资源
        最近更新 更多