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


Подресурсы (графика Direct3D 11)

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

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

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

иллюстрация 1d текстуры

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

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

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

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

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

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

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

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

Срез массива

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

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

Срез MIP

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

иллюстрация слоя mip

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

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

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

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

Или можно использовать эти два типа срезов с количеством уровней mipmap и (или) количества текстур, чтобы выбрать несколько подресурсов, как показано на следующем рисунке.

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

Заметка

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

 

Ресурсов