这个项目能做什么
DirectXTex 是微软提供的共享源代码 C++ 库,用于读写 .DDS 文件并执行纹理内容处理操作。其声明能力包括调整大小、格式转换、生成 mip-map、为 Direct3D 运行时纹理资源进行块压缩,以及高度图到法线图的转换。该库使用 Windows 图像组件 (WIC) API,并包含 .TGA 和 .HDR 读写器,因为这些格式在纹理管线中很常见,但缺乏内置的 WIC 编解码器。
仓库围绕核心库以及多个示例工具和运行时加载器组织:
- DirectXTex:主库,包含功能齐全的 DDS 读写器(支持旧格式转换)、TGA 和 HDR 读写器、基于 WIC 的位图读写器(BMP、JPEG、PNG、TIFF、HD Photo)以及纹理处理功能。只有 DirectXTex.h 和 DirectXTex.inl 被描述为公共头文件;大多数其他文件是内部文件。
- Auxiliary:可选源文件,例如使用 OpenEXR 的适配器加载函数和 Xbox 纹理平铺扩展。
- Common:库和工具使用的共享源头文件。
- Texconv:基于 DirectXTex 的命令行纹理实用程序,支持与旧版 texconvex.exe 工具类似的参数,但在 -10/-11 参数和过滤器名称上有所不同,并支持 JPEG XR (HD Photo)。
- Texassemble:用于从单个输入图像创建立方体贴图、体积贴图或纹理数组的命令行实用程序。
- Texdiag:用于分析图像内容的命令行实用程序,主要用于调试。
- DDSView:基于 Direct3D 11 的简单 DDS 文件查看器,支持键盘导航数组纹理和体积贴图。
- DDSTextureLoader:适用于 Direct3D 9、11 和 12 的轻量级运行时 DDS 加载器,不执行运行时像素数据转换,支持 1D、2D、体积贴图、立方体贴图、mipmap 级别、纹理数组和 BC 格式。
- ScreenGrab:适用于 Direct3D 9、11 和 12 的纹理写入模块,主要用于截图,写入 DDS 或 WIC 支持的图像格式。
- WICTextureLoader:适用于 Direct3D 9、11 和 12 的 2D 纹理加载器,使用 WIC 加载位图,根据功能级别或显式参数调整大小,在需要时格式转换为 DXGI_FORMAT,并创建 2D 纹理。它不支持 1D 纹理、体积纹理、立方体贴图或纹理数组。
README 中注明的构建要求包括 Visual Studio 2022 或 2026、适用于 Windows 的 clang v12 或更高版本,或 MinGW,对于 Visual Studio 需要 Windows 11 SDK (22000) 或更高版本。它也可以使用 GCC 11 或更高版本为 Windows Subsystem for Linux 构建。CMake 项目需要 3.21 或更高版本。这些组件设计为无需旧版 DirectX SDK 的内容即可工作。
文档托管在 GitHub wiki 上。README 还记录了 CoPilot CLI 技能安装、涵盖 API 更改(例如类型化枚举位掩码标志和 CREATETEX_FLAGS 更改)的发行说明、某些 NuGet 包弃用以支持 vcpkg、停止对 Windows 7 和 Windows 8.0 的支持,以及命令行工具的 GNU 风格长选项。该项目采用 MIT 许可,欢迎在 CLA 下贡献,测试提交到单独的测试套件仓库。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。