在D3D11中创建纹理后更新纹理的miplevel

时间:2012-09-04 00:15:54

标签: textures direct3d texture2d mipmaps direct3d11

在Direct 3D 11中,可以使用ID3D11DeviceContext::CreateTexture2D创建空纹理,并使用ID3D11DeviceContext::UpdateSubresource方法更新纹素数据,指定在D3D11_BOX结构中更改所需的mip级别。虽然这是可能的,但是在Direct 3D中创建后可以更改2D纹理的mip级别数吗?

我知道这个问题乞求“你为什么要这样做?!”响应,但由于一些移植/测试要求,我不得不这样做。

1 个答案:

答案 0 :(得分:3)

不,您无法在创建纹理后更改mipmap的数量。您只能创建另一个纹理并使用ID3D11DeviceContext::CopySubresourceRegion复制所需的mipmap(尽管最好直接使用正确的mipmap级别处理纹理...)。