структура D3D12_VIEW_INSTANCING_DESC (d3d12.h)

Задает параметры, используемые во время настройки экземпляра представления.

Синтаксис

typedef struct D3D12_VIEW_INSTANCING_DESC {
  UINT                               ViewInstanceCount;
  const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
  D3D12_VIEW_INSTANCING_FLAGS        Flags;
} D3D12_VIEW_INSTANCING_DESC;

Члены

ViewInstanceCount

Указывает количество используемых представлений до D3D12_MAX_VIEW_INSTANCE_COUNT.

pViewInstanceLocations

Адрес расположения памяти, который содержит структуры расположения экземпляра представления ViewInstanceCount , которые указывают расположение окна просмотра или ножницы и отрисовки целевых данных каждого экземпляра представления.

Flags

Настраивает отображение представлений с дополнительными параметрами.

Комментарии

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

Настройка представлений отключена, если она не объявлена в PSO или если параметр ViewInstanceCount имеет значение 0. Если параметр отключен, отрисовка ведет себя так, как если бы включена настройка представлений, а для параметра ViewInstanceCount задано значение 1; Шейдеры видят только значение 0 в SV_ViewID и создается только один экземпляр представления. Это позволяет по-прежнему использовать шейдеры, которые знают о настройке представлений, в psos, которые отключают его. Некоторые адаптеры могут поддерживать модель шейдера 6.1 (которая предоставляет SV_ViewID), но не поддержку представления; Эти адаптеры по-прежнему должны поддерживать шейдеры, ввод SV_ViewID в psos, которые объявляют ViewInstanceCount как 0 или 1.

Шейдер до растеризации может выводить SV_RenderTargetArrayIndex и SV_ViewportArrayIndex значения, которые не должны зависеть от SV_ViewID. Чтобы вычислить окончательный эффективный индекс окна просмотра и отрисовки целевого объекта, куда будут отправляться примитивы, эти значения при наличии добавляются в значения ViewportArrayIndex и RenderTargetArrayIndex расположений экземпляров представления, объявленных в PSO. Если вычисленный индекс выходит за пределы диапазона (то есть, если индекс больше, чем число элементов окна просмотра или отрисовки целевых элементов в соответствующих массивах), то фактический индекс становится 0.

Для шейдеров, которые динамически выбирают окно просмотра или отрисовывают целевые индексы, приложение может задать для всех расположений экземпляров представления, объявленных в PSO, одно значение (например, 0), чтобы выступать в качестве единого базового индекса, к которому добавляются динамически выбранные SV_RenderTargetArrayIndex и SV_ViewportArrayIndex значения.

Требования

Требование Значение
Заголовок d3d12.h

См. также раздел

Основные структуры