我只想知道DirectX12API从图像创建纹理。
对于DX11,它是D3DX11CreateShaderResourceViewFromFile,对于DX9,它是D3DXCreateTextureFromFileEx,对于DX12?
发布于 2016-02-08 13:32:20
现在情况好多了。微软为DX12重写了他们的DX12,并将其作为MiniEngine on GitHub https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/MiniEngine/Core/DDSTextureLoader.cpp的一部分发布。
您可能还想看看我的派生工作,它的目的是在DDSTextureLoader之外更容易地使用MiniEngine。https://github.com/ClemensX/ShadedPath12/blob/master/ShadedPath12/ShadedPath12/DDSTextureLoader.cpp
我使用这个加载程序来处理我所有的纹理文件。它很好地分析了DDS (DirectDrawSurface)文件格式,包括mipmap。
发布于 2015-12-28 14:43:23
根本就没有。
Direct3D 12是一个低级别的API.一个非常低级别的API。它没有方便的功能,创造纹理从整个布只是一个文件名。如果您想要创建一个纹理,您必须为它工作。你必须加载文件,找出你想要的格式,通过询问系统需要多少内存来分配内存,然后通过一系列复杂的步骤将你加载的图像传输到内存中。
发布于 2016-07-26 17:41:24
Direct3D 12的官方“实用程序头”是d3dx12.h。它是一个内联标题,没有DLL或静态库,因此提供的功能仅限于真正的帮助程序。它不等同于D3DX11CreateShaderResourceViewFromFile
。它不是作为Windows的一部分,而是在麻省理工学院许可下提供的,您只需要将其复制到您的项目中--它包含在各种DirectX 12 Visual模板中,包括我的Direct3D游戏模板。
您可以使用DDSTextureLoader
和WICTextureLoader
模块在用于DirectX 12的DirectX工具包中为Direct3D 12提供一些现成的纹理加载器。参见本补习课。
值得注意的是,D3DX9、D3DX10和D3DX11都不受欢迎,只能作为遗留DirectX SDKperMSDN的一部分使用。换句话说,您不应该在Direct3D 11代码中使用Direct3D。有关D3DX9/10/11替代品的完整列表,请参见这篇博客文章。TL;DR:在
DDSTextureLoader
和WICTextureLoader
中使用用于DirectX 11的DirectX工具包。
https://stackoverflow.com/questions/34494559
复制相似问题