Этап шейдера вершин
Этап вершинного шейдера (VS) обрабатывает вершины от входного сборщика, выполняя операции с вершинами, такие как преобразования, скиннинг, морфирование и освещение вершин. Вершинные шейдеры всегда работают на одной входной вершине и создают одну выходную вершину. Этап вершинного шейдера всегда должен быть активным для выполнения конвейера. Если изменение вершин или преобразование не требуется, необходимо создать сквозной шейдер вершины и установить его в конвейер.
Вершинный шейдер
Каждая входная вершина вершины вершины может состоять из 16 32-разрядных векторов (до 4 компонентов) и каждая выходная вершина может состоять из 16 32-разрядных 4-разрядных векторов. Все вершинные шейдеры должны иметь не менее одного входного и одного выходных данных, что может быть меньше одного скалярного значения.
Этап вершинного шейдера может использовать два системных созданных значения из входного сборщика: VertexID и InstanceID (см. семантику системного значения). Так как VertexID и InstanceID являются значимыми на уровне вершин, и идентификаторы, созданные оборудованием, могут быть загружены только на первом этапе, который понимает их, эти значения идентификаторов можно использовать только на этапе вершинного шейдера.
Вершинные шейдеры всегда выполняются на всех вершинах, включая смежные вершины в входных примитивных топологиях с примыкаемостью. Количество попыток выполнения шейдера вершин можно запрашивать из ЦП с помощью статистики конвейера VSInvocations.
Вершинный шейдер может выполнять операции загрузки и выборки текстур, в которых производные от пространства экрана не требуются (с помощью встроенных функций HLSL: sample (объект текстуры DirectX HLSL), SampleCmpLevelZero (объект текстуры DirectX HLSL)и SampleGrad (объект текстуры DirectX HLSL)).
Связанные разделы
- конвейера графики
- этапы конвейера (Direct3D 10)