Модели шейдеров и профили шейдеров
Язык заливки высокого уровня для DirectX реализует ряд моделей шейдеров. С помощью HLSL можно создать программируемые шейдеры C для конвейера Direct3D. Каждая модель шейдера основывается на возможностях модели перед ней, реализуя более функциональные возможности с меньшими ограничениями.
Модель шейдера 1 началась с DirectX 8 и включала уровни сборки и инструкции C-like. Эта модель имеет множество ограничений, вызванных ранним программируемым оборудованием шейдера. Модель шейдера 2 и 3 значительно расширена по количеству инструкций, а шейдеры констант могут использовать. Они гораздо более мощны, чем модель шейдера 1, но по-прежнему несут некоторые из существующих ограничений первой модели шейдера.
Начиная с Windows Vista, модель шейдера 4 является полным перепроектированием. Он позволяет неограниченным инструкциям и константам (в пределах аппаратных ограничений компьютера), имеет шаблонные объекты, чтобы сделать выборку текстур более чистой и более эффективной, и имеет наименьшие ограничения любой модели шейдера. Однако для нее требуется модель драйвера Windows, доступная только в операционной системе Windows Vista (или более поздней версии).
Профили шейдеров
Профиль шейдера — это целевой объект для компиляции шейдера; В этой таблице перечислены профили шейдеров, поддерживаемые каждой моделью шейдера.
Модель шейдера | Профили шейдеров |
---|---|
модели 1 шейдера 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_level_9_1, ps_4_0_level_9_3, vs_4_0_level_9_0, vs_4_0_level_9_1, vs_4_0_level_9_3, lib_4_0_level_9_1, lib_4_0_level_9_3 |
модели 3 шейдера 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 представил профили платформы эффектов fx_1_0 и fx_2_0.
- Direct3D 10 представила профиль платформы эффектов fx_4_0.
- Direct3D 10.1 представил профиль платформы эффектов fx_4_1.
- Direct3D 11 представил профиль платформы эффектов fx_5_0.
Заметка
Эти устаревшие профили эффектов устарели.
Связанные разделы
-
Справочник по для HLSL