Модели шейдеров и профили шейдеров

Язык заливки высокого уровня для DirectX реализует ряд моделей шейдеров. С помощью HLSL можно создавать программируемые шейдеры C-LIKE для конвейера Direct3D. Каждая модель шейдеров основана на возможностях модели до нее, реализуя дополнительные функции с меньшим количеством ограничений.

Модель шейдеров 1 запущена с DirectX 8 и включенными инструкциями на уровне сборки и C. Эта модель имеет множество ограничений, вызванных ранним программируемым оборудованием шейдера. Модели шейдеров 2 и 3 значительно расширены на количество инструкций, а шейдеры констант могут использовать. Они гораздо более эффективны, чем модель шейдера 1, но по-прежнему имеют некоторые ограничения первой модели шейдера.

начиная с Windows Vista, модель шейдеров 4 является полной переработкой. Она позволяет неограниченные инструкции и константы (в пределах аппаратных ограничений компьютера) иметь шаблонные объекты для очистки текстуры и повышения эффективности, а также минимальные ограничения любой модели шейдера. однако для этого требуется WDM, который доступен только в операционной системе Windows Vista (или более поздней версии).

Профили шейдеров

Профиль шейдера является целевым объектом для компиляции шейдера; в этой таблице перечислены профили шейдеров, поддерживаемые каждой моделью шейдера.

Модель шейдера Профили шейдеров
Модель шейдера 1 VS _ 1 _ 1
Модель шейдера 2 PS _ 2 _ 0, PS _ 2 _ x, VS _ 2 _ 0, VS _ 2 _ x, PS _ 4 _ 0 _ Level _ 9 _ 0, PS _ 4 _ 0 _ уровня _ 9 _ 1, PS _ 4 _ 0 _ уровня _ 9 _ 3, VS _ 4 _ 0 _ уровня _ 9 _ 0, VS _ 4 _ 0 _ уровня 9 1, _ VS _ _ 4 _ _ _ _ _ _ _ _ _ _ _ _ _ _ 0 уровня 9 3, 9 3 (lib 4 0)
Модель шейдера 3 PS _ 3 _ 0, VS _ 3 _ 0
Модель шейдера 4 CS _ 4 _ 0, GS _ 4 _ 0, PS _ 4 _ 0, VS _ 4 _ 0, CS _ 4 _ 1, GS _ 4 _ 1, PS _ 4 _ 1, VS _ 4 _ 1, lib _ 4 _ 0, lib _ 4 _ 1
Модель шейдера 5 CS _ 5 _ 0, DS _ 5 _ 0, GS _ 5 _ 0, HS _ 5 0, _ PS _ 5 _ 0, VS _ 5 _ 0, lib _ 5 _ 0 (хотя GS _ 4 _ 0, GS _ 4 _ 1, PS _ 4 _ 0, PS _ 4 _ 1, VS _ 4 _ 0 и VS _ 4 _ 1 были введены в модель шейдера 4,0, в модели шейдера 5 добавлена поддержка этих профилей шейдеров для структурированных буферов и буферов байтового адреса.)
Модель шейдеров 6 CS _ 6 _ 0, DS _ 6 _ 0, GS _ 6 _ 0, HS _ 6 _ 0, PS _ 6 _ 0, VS _ 6 _ 0, lib _ 6 _ 0

Различия между Direct3D 9 и Direct3D 10:

  • В Direct3D 9 появились модели шейдеров 1, 2 и 3.
  • В Direct3D 10 появилась модель шейдера 4.
  • В Direct3D 10,1 появилась модель шейдера 4,1.

Профили эффектов

Профиль эффектов является целевым объектом для компиляции эффектов и шейдеров. в этой таблице перечислены профили эффектов, поддерживаемые каждой версией Direct3D.

Различия между Direct3D 9 и Direct3D 10:

  • В Direct3D 9 появился результат: Framework Profiles FX _ 1 _ 0 и FX _ 2 _ 0.
  • В Direct3D 10 появился результат — профиль платформы FX _ 4 _ 0.
  • В Direct3D 10,1 появился результат — профиль платформы FX _ 4 _ 1.
  • Появившийся результат Direct3D 11 — профиль платформы FX _ 5 _ 0.

Примечание

Эти профили устаревших эффектов являются устаревшими.

Справочник по HLSL