Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Графическое оборудование, поддерживающее Direct3D версии 10, можно разрабатывать с общими программируемыми ядрами шейдеров. Модуль обработки графики (GPU) может программировать шейдерные ядра, распределяя их по функциональным блокам, которые составляют конвейер отрисовки. Эта балансировка нагрузки означает, что разработчикам оборудования не требуется использовать каждый тип шейдера, а только те, которые необходимы для отрисовки. Эта балансировка нагрузки может освободить ресурсы для шейдеров, которые активны. На следующем рисунке показаны функциональные блоки потока отрисовки. В разделах ниже рисунка более подробно описываются блоки.
Сборщик входных данных
Этап входного сборщика использует операции фиксированной функции для чтения вершин из памяти. Затем сборщик входных данных формирует геометрические примитивы и создает рабочие элементы конвейера. Автоматически созданные идентификаторы вершин, идентификаторы экземпляров (доступные для шейдера вершин) и примитивные идентификаторы (доступные для шейдера геометрии или шейдера пикселей) позволяют обрабатывать идентификаторы. Пунктирная линия на рисунке показывает поток обработки идентификатора.
Шейдер вершин
Этап шейдера вершин принимает одну вершину в качестве входных данных и выводит одну вершину.
Шейдер геометрии
На этапе шейдера геометрии в качестве входных данных используется один примитив, а на выходе может получиться ноль, один или несколько примитивов. Выходные примитивы могут содержать больше данных, чем возможно, без шейдера геометрии. Общий объем выходных данных для каждой операции — (размер вершины x количество вершин).
Поток выходных данных
Этап вывода потока объединяет примитивы (потоки), которые достигают выходных данных шейдера геометрии для выходных буферов. Выходные данные потока связаны с геометрическим шейдером, и они программируются вместе.
Растеризатор
Этап растеризатора обрезает примитивы (включая пользовательские границы обрезки), выполняет деление перспективы на примитивы, осуществляет выбор области просмотра и секущих областей, выбирает целевой объект отрисовки и осуществляет настройку примитивов.
Пиксельный шейдер
Этап шейдера пикселей принимает один пиксель в качестве входных данных и выводит один пиксель в той же позиции или без пикселя. Шейдер пикселей не может считывать текущие целевые объекты отрисовки.
Слияние выходных данных
Этап слияния выходных данных выполняет фиксированные операции блендинга, глубинных и трафаретных операций.