Какой слот текстуры следует использовать, чтобы начать там, где мне нужно 7-й и 8-й слот вместе, от 0 до 8, индекс 9 ресурсов - PullRequest
0 голосов
/ 10 января 2019

У меня всего 9 текстурных ресурсов, мне нужно 2 ресурса вместе для пиксельного шейдера. В таком случае, каким должен быть индекс начала слота текстуры, если мне нужны только 7-й и 8-й ресурсы текстуры. (например, Texture2D foo1: регистр (t7) и Texture2D foo2: регистр (t8))

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

EDIT: У меня есть класс-оболочка для управления шейдерами, где я имею дело с несколькими ресурсами, как показано ниже:

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());

1 Ответ

0 голосов
/ 18 февраля 2019

Из этого поста я узнал, что вы можете сразу предоставить коллекцию текстур ресурсов и указать начальный индекс, откуда их собирать из предоставленного буфера.

...