应该使用哪个纹理槽来开始我需要7个资源的0到8个索引中的第7个和第8个槽

问题描述 投票:4回答:1

我总共有9个纹理资源我需要2个资源一起用于像素着色器。在那种情况下,如果我只需要第7和第8个纹理资源,那么纹理槽开始索引应该是什么。 (例如Texture2D foo1:寄存器(t7)和Texture2D foo2:寄存器(t8))

void PSSetShaderResources(
   UINT                     StartSlot,
   UINT                     NumViews,
   ID3D11ShaderResourceView * const *ppShaderResourceViews
);

编辑:我有一个用于管理着色器的包装类,我在处理多个资源,如下所示:

ID3D11DeviceContextPtr context = renderer->Context();
std::vector<ID3D11ShaderResourceView*> srvs;

    for(auto texture : m_textures)
    {
        srvs.push_back(texture->ShaderResourceView());
    }
    context->PSSetShaderResources(m_startSlot, srvs.size(), srvs.data());
c++ directx-11 hlsl pixel-shader
1个回答
0
投票

我从这个post发现你可以一次提供纹理的资源集合,并提供一个起始索引,从哪里从它提供的缓冲区中收集它们。

© www.soinside.com 2019 - 2024. All rights reserved.