Описание тега vertex-shader

Вершинные шейдеры - это исполняемые программы, которые выполняются как часть конвейера программируемой геометрии в современных графических API, таких как, например, Direct3D или OpenGL. В настоящее время вершинные шейдеры обычно аппаратно ускоряются на потребительском оборудовании. Вершинный шейдер обрабатывает одну вершину за раз, за ​​ней следует примитивная сборка, необязательно геометрический шейдер и обратная связь с преобразованием, отсечение и, наконец, растеризация и обработка фрагментов.

Вершинные шейдеры были представлены как расширение OpenGL 1.3 и как функция Direct3D 8.0 примерно в 2001 году. Они были первым шагом на пути к тому, чтобы сделать часть конвейера рендеринга на потребительском оборудовании свободно программируемым, в отличие от аппаратных функций, таких как этап TnL или объединители регистров, которые до тех пор были в лучшем случае ограниченно настраиваемыми.

Вершинный шейдер обычно является первой программируемой частью конвейера. Область видимости вершинного шейдера - это одна вершина без какой-либо информации о связи между вершинами или любыми другими вершинами и любого состояния, установленного как "равномерное", то есть данные, которые постоянны для всего в текущем вызове отрисовки. Вершинный шейдер не может создавать вершины или отбрасывать их, а вершинный шейдер не имеет локальной памяти или другого способа, который можно использовать для передачи данных от одной вершины к другой.

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

Ресурсы: