Как создать две 2dTextures, используя d3d11Device?

Я создаю две 2dtextures в d3d11, как это: m_device-> CreateTexture2D (& D3D11Tex, NULL, & tex1); m_device-> CreateTexture2D (& D3D11Tex, NULL, & tex2);

D3D11Tex.ArraySize = 1; // в настоящее время использую, я прочитал, что это значение может быть сохранено как два.

Но тогда как мы получим 2 текстуры. Сохранение ArraSize как 2 даст мне две текстуры в tex1 и tex2? Или tex1 будет массивом второго размера.

Любая помощь по этому вопросу приветствуется. Заранее спасибо.

1 ответ

tex1 а также tex2 являются независимыми ресурсами, которые должны быть связаны с различными слотами ресурсов шейдеров. Если вы сделаете один из них массивом двухмерных текстур, у вас останутся два шейдерных ресурса, только у одного из них будет место для двух 2D-текстур в массиве.

Обратите внимание, что для двухмерных текстурных массивов требуется аппаратный уровень 10.0 или выше Вызов не состоялся бы в системе с устройством с функциями уровня 9.1, 9.2 или 9.3 (т. Е. Surface RT, Surface RT 2, Windows phone 8, видеокарта Shader Model 2.0 и т. Д.).

Другие вопросы по тегам