logo
DirectX: характеристика версий, особенности использования

Ключевые особенности версий DirectX

· DirectX 6.0 - мультитекстурирование

· DirectX 7.0 - аппаратная поддержка преобразований, обрезания и освещения

· DirectX 8.0 - шейдерная модель 1.1

· DirectX 8.1 - пиксельные шейдеры 1.4 и вершинные шейдеры 1.1

· DirectX 9.0 - шейдерная модель 2.0

· DirectX 9.0b - пиксельные шейдеры 2.0b и вершинные шейдеры 2.0

· DirectX 9.0c - шейдерная модель 3.0

· DirectX 9.0L - версия DirectX 9.0 для Windows Vista

· DirectX 10 - шейдерная модель 4.0 (только Windows Vista, Windows 7, Windows 8)

· DirectX 10.1 - шейдерная модель 4.1 (только Windows Vista, Windows 7, Windows 8)

· DirectX 11 - шейдерная модель 5.0 (только Windows Vista, Windows 7, Windows 8)

· DirectX 11.1 - шейдерная модель 5.0 (только Windows 7 SP1, Windows 8)

· DirectX 11.2 - шейдерная модель 5.0 (только Windows 8.1)

Шейдеры

Шемйдер (англ. Shader; схема затемнения, программа построения теней) - это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки.

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

Вершинные шейдеры (Vertex Shader)

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

Геометрические шейдеры (Geometry Shader)

Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того, геометрический шейдер способен генерировать примитивы "на лету", не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia серии 8.

Пиксельные шейдеры (Pixel Shader)

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