首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 11 mipmaps

DirectX 11 mipmaps
EN

Stack Overflow用户
提问于 2015-07-05 08:44:47
回答 1查看 3.2K关注 0票数 2

如何在DirectX中创建纹理mipmap?这是我的代码,我试着这样做,但它不起作用:

代码语言:javascript
复制
    D3D11_TEXTURE2D_DESC desc{};
    desc.Width = dims.X;!
    desc.Height = dims.Y;
    desc.ArraySize = 1;
    desc.SampleDesc.Count = 1;
    desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
    desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
    desc.MiscFlags = D3D11_RESOURCE_MISC_GENERATE_MIPS;

    D3D11_SUBRESOURCE_DATA initData{};
    initData.pSysMem = pixels;
    initData.SysMemPitch = sizeof(unsigned char) * dims.X * 4;

    D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc{};
    srvDesc.Format = desc.Format;
    srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
    srvDesc.Texture2D.MipLevels = 1;

    Device->CreateTexture2D(&desc, nullptr, Texture.GetAddressOf());
    Device->CreateShaderResourceView(Texture.Get(), &srvDesc, ShaderResource.GetAddressOf());
    DeviceContext->UpdateSubresource(Texture.Get(), 0, 0, pixels, initData.SysMemPitch, 0);
    DeviceContext->GenerateMips(ShaderResource.Get());

Texture now looks like this

EN

回答 1

Stack Overflow用户

发布于 2015-07-06 09:52:44

好了,我把srvDesc.Texture2D.MipLevels改成了-1,现在它起作用了。谢谢。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31226292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档