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