Шейдеры

Шейдеры это небольшие программы написанные на C-подобном языке (например на GLSL или HLSL) которые сообщают видеокарте как производить рендеринг элементов. Шейдеры бывают разных видов: вершинные, фрагментные (пиксельные), геометрические, тесселяционные, вычислительные.

Основные два вида шейдеров которые мы будем использовать с вами в курсе это:

Вершинные шейдеры производят пространственные манипуляции с вершинами. В простейшем случае зедсь происходят перспективные и видовые проекции трехмерных точку в двухмерные точки на плоскость видовой пирамиды (frustrum).

Фрагментные шейдеры производят манипуляции с цветом индивидуального пикселя. Здесь происходят расчеты текстур, света, различных специальных техник вроде bump mapping.

 

В чем преимущество шейдеров?

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