【问题标题】:Determine the block compression format of an existing DDS texture file确定现有 DDS 纹理文件的块压缩格式
【发布时间】:2023-01-12 07:24:35
【问题描述】:

有谁知道是否可以确定现有 DDS 纹理文件的压缩格式?我有 NVidia Photoshop 插件、DXTViewer 应用程序和 Honeyview 应用程序,但似乎找不到任何方法来获取这个简单的信息?

关于压缩格式,我指的是 BC7、BC6H、BC3、BC2 等。

【问题讨论】:

  • 我忘了提到 DXTViewer 确实显示了一些文件的格式,但它甚至不会加载我正在测试它的大部分图像。我假设它无法理解较新的压缩模式。

标签: graphics textures direct3d dds-format


【解决方案1】:

大多数 DDS 查看器只了解如何解析标准的“DDS”文件。自引入 Direct3D 10 以来,有一个“DX10”扩展标头,由旧的 DDPIXELFORMAT 中“DX10”的 FourCC 值表示。这已在 D3DX10、D3DX11 和 DirectXTex 中实现。见this blog post

顺便说一句,现代版本的 Visual Studio 可以查看大多数 DDS 文件。

您可以构建 ddsdump.cpp,它还需要 dds.h 来构建一个快速控制台应用程序,该应用程序会转储标头信息和格式。

另请参阅 GitHub 上的 DirectXTexMicrosoft Docs

WIC on Windows 8.1 或更高版本具有内置 DDS 编解码器,但它只要支持“DXT1”、“DXT2”、“DXT3”、“DXT4”和“DXT5”(即经典的 BC1-BC3 压缩)。它仅适用于某些 WebGL 场景。

多年来,我一直在更新积压的旧版 DirectX SDK Texture Viewer(又名 dxtex)。到目前为止,我已经设法获得现有版本open source,但没有时间深入研究支持更新的“DX10”标头。

【讨论】:

    猜你喜欢
    • 2021-07-08
    • 2015-01-27
    • 2013-02-14
    • 1970-01-01
    • 2012-09-26
    • 2015-06-24
    • 2020-04-21
    • 2014-04-05
    • 2010-10-06
    相关资源
    最近更新 更多