在现代DirectX中制作和加载立方体贴图(11,发布在Windows 8.1中)

时间:2015-12-31 06:50:15

标签: graphics directx directx-11

我一直在试图弄清楚如何为我的Direct3D 11程序创建和使用立方体贴图。

我一直认为,如果我将6张图片导出到DDS文件,我只需使用CreateDDSTextureFromFile(_device, inName, (ID3D11Resource**)&_texture, &_shaderResourceView)加载一个文件即可。但是我找不到似乎它应该用于将纹理编译成DDS的工具:dxtex.exe。从理论上讲,它附带了DirectX SDK,自Windows 8.1(http://blogs.msdn.com/b/chuckw/archive/2013/07/01/where-is-the-directx-sdk-2013-edition.aspx)以来它已经不复存在。我搜索过我的硬盘并且它不存在(因此可能没有与Visual Studio一起安装 - 我有2013年和2015年;我正在运行Windows 10,从8.1升级)。

还有一个用于Photoshop的Nvidia插件,该插件在3年内没有更新,当我尝试运行它时会崩溃我的Photoshop副本(CC 2015)。有关于AMD工具的传言,但我读到它已经有一段时间没有得到支持,比如Nvidia工具。

我甚至在几年前看过这篇帖子,他们只是单独加载每个纹理(但是对于它来说,似乎你应该使用外部库,因为CreateXXXTextureFromFile(...)函数期望分配资源在我将纹理数据数组设置为单个立方体贴图之前,我不需要查看。

我的问题是:如今有人打算如何保存并加载立方体贴图?似乎并没有任何似乎有意无意的路线。

如果可能的话,我宁愿加载一个纹理。

1 个答案:

答案 0 :(得分:1)

您可以安装旧版DirectX SDK(2010年6月)以获取旧的DXTex工具。请注意,安装旧版DirectX SDK有known issues,部分旧版DirectX SDK与DirectX 11.1 or later runtimes不兼容,DXTex工具不支持所有DXGI格式 - 详情见The DDS File Format Lives

DirectXTex库项目包含一个命令行工具texassemble,您可以使用它来构建从单个图像文件到DDS的复杂数组,立方体贴图和体积贴图。然后,您可以使用texconv命令行工具将该DDS处理为其他格式(例如将其压缩为BC格式)。

  

使用DirectXTex制作新版本的DXTex是backlog item

您可以使用DDSTextureLoader代码在运行时从复杂的DDS文件创建资源。