Представления текстур
В Direct3D доступ к ресурсам текстуры осуществляется с помощью представления, который является механизмом аппаратной интерпретации ресурса в памяти. Представление позволяет определенному этапу конвейера получить доступ только к необходимым вложенным ресурсам в представлении, требуемом приложением.
Представление поддерживает понятие бестипного ресурса. Ресурс без типа — это ресурс, созданный с определенным размером, но не определенным типом данных. Данные интерпретируются динамически при привязке к конвейеру.
На следующем рисунке показан пример привязки массива текстур 2D с 6 текстурами в качестве ресурса шейдера путем создания представления ресурсов шейдера для него. Затем ресурс обращается в виде массива текстур. (Примечание. Подресурс не может быть привязан как входных, так и выходных данных к конвейеру одновременно.)
При использовании 2D-массива текстур в качестве целевого объекта отрисовки ресурс можно рассматривать как массив трехмерных текстур (6 в этом примере) с уровнями mipmap (3 в этом примере).
Создайте объект представления для целевого объекта отрисовки, вызвав CreateRenderTargetView. Затем вызовите OMSetRenderTargets, чтобы задать целевое представление отрисовки конвейеру. Отрисовка в целевые объекты отрисовки путем вызова Draw и использования RenderTargetArrayIndex для индексирования в правильной текстуре массива. Вы можете использовать подресурс (уровень mipmap, сочетание индекса массива) для привязки к любому массиву подресурсов. Таким образом, вы можете привязаться ко второму уровню MIP-карты и обновить этот конкретный уровень MIP-карты, если вы хотите, как показано на следующем рисунке.
Связанные темы