Графический конвейер
Программируемый конвейер Direct3D 11 предназначен для создания графики для игровых приложений в режиме реального времени. В этом разделе описывается программируемый конвейер Direct3D 11. На следующей схеме показан поток данных из входных данных в выходные данные на каждом из программируемых этапов.
Графический конвейер для Microsoft Direct3D 11 поддерживает те же этапы, что и графический конвейер Direct3D 10, а также дополнительные этапы для поддержки расширенных функций.
С помощью Direct3D 11API можно настроить все этапы. Этапы, которые имеют общие ядра шейдеров (округленные прямоугольные блоки), программируются с помощью языка программирования HLSL. Как вы видите, это делает конвейер чрезвычайно гибким и адаптируемым.
В этом разделе
Тема | Описание |
---|---|
этап входного сборщика |
API Direct3D 10 и более поздних версий разделяет функциональные области конвейера на этапы; первым этапом конвейера является этап входной сборки (IA). |
этап вершинного шейдера |
Этап вершинного шейдера (VS) обрабатывает вершины от входного сборщика, выполняя операции с вершинами, такие как преобразования, скиннинг, морфирование и освещение вершин. Вершинные шейдеры всегда работают на одной входной вершине и создают одну выходную вершину. Этап шейдера вершин всегда должен быть активным для выполнения конвейера. Если модификация вершин или их преобразование не требуется, необходимо создать пропускной шейдер вершин и установить его в конвейер. |
этапы Тесселлации |
Среда выполнения Direct3D 11 поддерживает три новых стадии, реализующих тесселяцию, которые преобразуют поверхности с низкой степенью детализации в более подробные примитивы на GPU. Тесселяция преобразует (или разбивает) поверхности высшего порядка в подходящие структуры для отрисовки. |
этап шейдера геометрии |
Этап геометрического шейдера (GS) выполняет заданный приложением код шейдера с вершинами в качестве входных данных и возможно создавать вершины на выходе. |
этап вывода потока |
Цель стадии потокового вывода — непрерывно передавать данные вершин из стадии геометрического шейдера (или стадии шейдера вершин, если стадия геометрического шейдера неактивна) в один или несколько буферов в памяти (см. начало работы с стадией потокового вывода). |
этап растризатора |
Этап растеризации преобразует векторные данные (состоящие из фигур или примитивов) в растровое изображение (состоящее из пикселей) для отображения трехмерной графики в режиме реального времени. |
этап пиксельного шейдера |
Этап пиксельного шейдера (PS) позволяет использовать богатые техники шейдинга, такие как посветка на каждый пиксель и постобработка. Шейдер пикселей — это программа, которая объединяет постоянные переменные, данные текстуры, интерполированные значения вершин и другие данные для создания выходных данных на пиксель. Этап растризатора вызывает шейдер пикселей один раз для каждого пикселя, охватываемого примитивом, однако можно указать шейдер NULL, чтобы избежать запуска шейдера. |
этап слияния выходного слияния |
Этап слияния выходных данных (OM) создает окончательный цвет отрисованного пикселя, используя сочетание состояния конвейера, данных, созданных пиксельными шейдерами, содержимого целевых объектов отрисовки и содержимого буферов глубины и трафарета. Этап OM — это последний шаг для определения видимых пикселей (с тестированием элементов глубины) и смешивания окончательных цветов пикселей. |
Связанные разделы
- шейдер вычислений
- Руководство по программированию для Direct3D 11