Modelos de sombreador versus perfis de sombreador

A Linguagem de Sombreamento de Alto Nível para DirectX implementa uma série de modelos de sombreador. Usando o HLSL, você pode criar sombreadores programáveis semelhantes a C para o pipeline do Direct3D. Cada modelo de sombreador se baseia nos recursos do modelo antes dele, implementando mais funcionalidade com menos restrições.

O modelo de sombreador 1 começou com o DirectX 8 e incluiu instruções de nível de assembly e C. Esse modelo tem muitas limitações causadas pelo hardware de sombreador programável inicial. O modelo de sombreador 2 e 3 foi muito expandido com base no número de instruções, e sombreadores de constantes poderiam ser usados. Eles são muito mais poderosos do que o modelo de sombreador 1, mas ainda carregam algumas das limitações existentes do primeiro modelo de sombreador.

A partir do Windows Vista, o sombreador modelo 4 é uma reformulação completa. Ele permite instruções e constantes ilimitadas (dentro de restrições de hardware do computador), tem objetos modelados para tornar a amostragem de textura mais limpa e eficiente e tem o menor número de restrições de qualquer modelo de sombreador. No entanto, ele requer o modelo de driver Windows que só está disponível no sistema operacional Windows Vista (ou posterior).

Perfis de sombreador

Um perfil de sombreador é o destino para compilar um sombreador; esta tabela lista os perfis de sombreador compatíveis com cada modelo de sombreador.

Modelo de sombreador Perfis de sombreador
Modelo de sombreador 1 vs_1_1
Modelo de sombreador 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
Modelo de sombreador 3 ps_3_0, vs_3_0
Modelo de sombreador 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
Modelo de sombreador 5 cs_5_0, ds_5_0, gs_5_0, hs_5_0, ps_5_0, vs_5_0, lib_5_0 (embora gs_4_0, gs_4_1, ps_4_0, ps_4_1, vs_4_0 e vs_4_1 tenham sido introduzidos no modelo de sombreador 4.0, o modelo de sombreador 5 adiciona suporte a esses perfis de sombreador para buffers estruturados e buffers de endereço de bytes.)
Modelo de sombreador 6 cs_6_0, ds_6_0, gs_6_0, hs_6_0, ps_6_0, vs_6_0, lib_6_0

Diferenças entre Direct3D 9 e Direct3D 10:

  • O Direct3D 9 introduziu os modelos de sombreador 1, 2 e 3.
  • O Direct3D 10 introduziu o modelo 4 do sombreador.
  • O Direct3D 10.1 introduziu o modelo de sombreador 4.1.

Perfis de efeito

Um perfil de efeito é o destino para compilar um efeito/sombreador; esta tabela lista os perfis de efeito compatíveis com cada versão do Direct3D.

Diferenças entre Direct3D 9 e Direct3D 10:

  • O Direct3D 9 introduziu perfis de estrutura de efeito fx_1_0 e fx_2_0.
  • O Direct3D 10 introduziu fx_4_0 de perfil de estrutura de efeito.
  • O Direct3D 10.1 introduziu fx_4_1 de perfil de estrutura de efeito.
  • O Direct3D 11 introduziu fx_5_0 de perfil de estrutura de efeito.

Observação

Esses perfis de efeitos herdados são preteridos.

Referência para HLSL