Поделиться через


Вложенные ресурсы (графика Direct3D 11)

В этом разделе описываются подресурсы текстуры или части ресурса.

Direct3D может ссылаться на весь ресурс или же на подмножества ресурса. Под ресурсом понимается подмножество ресурса.

Буфер определяется как один подресурс. Текстуры немного сложнее, так как существует несколько различных типов текстур (1D, 2D и т. д.), некоторые из которых поддерживают уровни MIP-карты и/или массивы текстур. Самый простой случай — это одномерная текстура, которая определяется как один подресурс (см. следующий рисунок).

иллюстрация одномерной текстуры

Это означает, что массив текселей, из которых состоит одномерная текстура, содержится в одном подресурсе.

Если развернуть 1D-текстуру с тремя уровнями MIP-карты, ее можно визуализировать, как показано на следующем рисунке.

Иллюстрация 1d-текстуры с тремя уровнями MIP-карты

Это можно рассматривать как единую текстуру, которая состоит из трех подресурсов. Подресурс можно индексировать с помощью уровня детализации (LOD) для одной текстуры. При использовании массива текстур для доступа к определенному подресурсу требуется как LOD, так и конкретная текстура. Кроме того, API объединяет эти два элемента информации в единый индекс подресурсов с отсчитываемого от нуля, как показано на следующем рисунке.

иллюстрация начинающегося с нуля индекса подресурса

Выбор подресурсов

Некоторые API обращаются ко всему ресурсу (например, к методу ID3D11DeviceContext::CopyResource ), другие — к части ресурса (например, к методу ID3D11DeviceContext::UpdateSubresource или к методу ID3D11DeviceContext::CopySubresourceRegion ). Методы, которые обращаются к части ресурса, обычно используют описание представления (например , D3D11_TEX2D_ARRAY_DSV структуру), чтобы указать подресурсы для доступа.

На рисунках в следующих разделах показаны термины, используемые описанием представления при доступе к массиву текстур.

Срез массива

Учитывая массив текстур, каждая текстура с MIP-картами, срез массива (представленный белым прямоугольником) включает одну текстуру и все ее подресурсы, как показано на следующем рисунке.

Иллюстрация среза массива

Срез MIP

Срез MIP (представленный белым прямоугольником) включает один уровень MIP-карты для каждой текстуры в массиве, как показано на следующем рисунке.

Иллюстрация среза MIP

Выбор одного подресурса

Эти два типа срезов можно использовать для выбора одного подресурса, как показано на следующем рисунке.

Иллюстрация выбора подресурса с помощью среза массива и среза MIP

Выбор нескольких подресурсов

Вы также можете использовать эти два типа срезов с количеством уровней MIP-карты и /или количеством текстур, чтобы выбрать несколько подресурсов, как показано на следующем рисунке.

Иллюстрация выбора нескольких подресурсов

Примечание

Представление целевого объекта отрисовки может использовать только один срез подресурса или MIP и не может включать подресурсы из нескольких срезов MIP. То есть каждая текстура в целевом представлении отрисовки должна иметь одинаковый размер. Представление ресурсов шейдера может выбрать любую прямоугольную область вложенных ресурсов, как показано на рисунке.

 

Ресурсы