Этап сборщика входных данных

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

Назначение и использование

Назначение этапа сборщика входных данных (IA) — чтение данных примитивов (точки, линии и треугольники) из заполняемых пользователем буферов и сбор данных в примитивы, которые будут использоваться другими этапами конвейера, а также прикрепление созданных системой значений для повышения эффективности шейдеров. Создаваемые системой значения являются текстовыми строками, которые также называют семантическими элементами. Программируемые этапы шейдера создаются из общего ядра шейдера, которое использует созданные системой значения (например, идентификатор примитива, идентификатор экземпляра или идентификатор вершины), таким образом, чтобы этот этап шейдера мог сократить объемы обработки лишь до тех примитивов, экземпляров или вершин, которые еще не были обработаны.

Этап сборщика входных данных может объединять вершины в несколько различных типов примитивов, таких как списки линий, полосы треугольников или примитивы со смежностью. Такие типы примитивов, как список треугольников со смежностью и список строк со смежностью, поддерживают этап шейдера геометрии (GS).

Информация о смежности доступна приложению только в шейдере геометрии. Если шейдер геометрии вызывается, например с помощью треугольника со смежностью, входные данные будут содержать 3 вершины для каждого треугольника и 3 вершины для данных о смежности для каждого треугольника.

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

Вход

Этап сборщика входных данных считывает данные из памяти: данные примитивов (точки, линии и треугольники) из заполняемых пользователем буферов.

Выход

Этап сборщика входных данных объединяет данные в примитивы и прикрепляет к ним созданные системой значения, и выводит эти данные как примитивы, которые будут использоваться этапом шейдера вершин (VS), а затем другими этапами конвейера.

В этом разделе

Раздел Описание

Топологии примитивов

Direct3D поддерживает несколько топологий примитивов, которые определяют, как вершины интерпретируются и рассматриваются конвейером; к ним относятся списки точек, списки линий, и полосы треугольников.

Использование системных значений

Системные значения создаются этапом сборщика входных данных (IA) (на основе пользовательской семантики ввода), чтобы обеспечить определенную эффективность операций шейдера. Благодаря прикреплению определенных данных, таких как идентификатор экземпляра (видимый этапу шейдера вершин (VS)), идентификатор вершины (видимый VS) или идентификатор примитива (видимый этапу шейдера геометрии (GS)/этапу построителя текстуры (PS)), последующий этап шейдера может искать эти системные значения для оптимизации обработки на этом этапе.

 

Графический конвейер